เอกสารนี้อธิบายวิธีรันกระบวนการ Node.js ด้วยแพ็คเกจ @tensorflow/tfjs-node บนแพลตฟอร์มคลาวด์
เริ่มต้นจาก tfjs-node@1.2.4 การรันโปรเจ็กต์ Node.js บนแพลตฟอร์มคลาวด์ไม่จำเป็นต้องมีการกำหนดค่าเพิ่มเติม คู่มือนี้จะแสดงวิธีเรียกใช้ตัวอย่าง mnist-node ในพื้นที่เก็บข้อมูล @tensorflow/tfjs-examples บน Heroku และ GCloud การสนับสนุน Node.js ของ Heroku ได้รับการบันทึกไว้ใน บทความ นี้ การรัน Node.js บนแพลตฟอร์ม Google Cloud ได้รับการบันทึก ไว้ที่นี่
ปรับใช้โครงการ Node.js บน Heroku
ข้อกำหนดเบื้องต้น
- ติดตั้ง Node.js และ npm แล้ว
- บัญชีเฮโรกุ
- เฮโรกุ CLI
สร้างแอป Node.js
- สร้างโฟลเดอร์และคัดลอกไฟล์
data.js
,main.js
,model.js
และpackage.json
จากตัวอย่าง mnist-node - ตรวจสอบให้แน่ใจว่าการพึ่งพา @tensorflow/tfjs-node เป็น @1.2.4 หรือเวอร์ชันที่ใหม่กว่า
สร้างแอปของคุณและรันในเครื่อง
- รันคำสั่ง
npm install
ในไดเร็กทอรีในเครื่องของคุณเพื่อติดตั้งการขึ้นต่อกันที่ประกาศไว้ในไฟล์package.json
คุณควรจะเห็นว่ามีการติดตั้งแพ็คเกจ tfjs-node และดาวน์โหลด libtensorflow แล้ว
$ npm install
> @tensorflow/tfjs-node@1.2.5 install mnist-node/node_modules/@tensorflow/tfjs-node
> node scripts/install.js
CPU-linux-1.2.5.tar.gz
* Downloading libtensorflow
[==============================] 22675984/bps 100% 0.0s
* Building TensorFlow Node.js bindings
- ฝึกโมเดลในเครื่องโดยการรัน
npm start
$ npm start
> tfjs-examples-mnist-node@0.1.0 start /mnist-node
> node main.js
2019-07-30 17:33:34.109195: I tensorflow/core/platform/cpu_feature_guard.cc:142] Your CPU supports instructions that this TensorFlow binary was not compiled to use: AVX2 FMA
2019-07-30 17:33:34.147880: I tensorflow/core/platform/profile_utils/cpu_utils.cc:94] CPU Frequency: 3492175000 Hz
2019-07-30 17:33:34.149030: I tensorflow/compiler/xla/service/service.cc:168] XLA service 0x52f7090 executing computations on platform Host. Devices:
2019-07-30 17:33:34.149057: I tensorflow/compiler/xla/service/service.cc:175] StreamExecutor device (0): <undefined>, <undefined>
Total params: 594922
Trainable params: 594922
Non-trainable params: 0
_________________________________________________________________
Epoch 1 / 20
Epoch 1 / 20
========================>----------------------------------------------------------------------------------: 35.5
- ตรวจสอบให้แน่ใจว่าคุณละเว้นการสร้างส่วนต่างๆ เช่น node_modules ในไฟล์ .gitignore ของคุณ
สร้างและปรับใช้แอป Heroku
- สร้างแอปใหม่บนเว็บไซต์ Heroku
- ยอมรับการเปลี่ยนแปลงของคุณและผลักดันไปที่ Heroku Master
$ git init
$ heroku git:remote -a your-app-name
$ git add .
$ git commit -m "First Commit"
$ git push heroku master
- ในบันทึกบิลด์ คุณควรเห็นแพ็คเกจ tfjs-node ที่ดาวน์โหลดไลบรารี TensorFlow C และโหลดส่วนเสริมดั้งเดิมของ TensorFlow Node.js:
remote: -----> Installing dependencies
remote: Installing node modules (package.json)
remote:
remote: > @tensorflow/tfjs-node@1.2.5 install /tmp/build_de800e169948787d84bcc2b9ccab23f0/node_modules/@tensorflow/tfjs-node
remote: > node scripts/install.js
remote:
remote: CPU-linux-1.2.5.tar.gz
remote: * Downloading libtensorflow
remote:
remote: * Building TensorFlow Node.js bindings
remote: added 92 packages from 91 contributors and audited 171 packages in 9.983s
remote: found 0 vulnerabilities
remote:
ในบันทึกกระบวนการของ Heroku คุณควรจะเห็นบันทึกการฝึกโมเดล:
Total params: 594922
Trainable params: 594922
Non-trainable params: 0
_________________________________________________________________
Epoch 1 / 20
Epoch 1 / 20
====>--------------------------------------------------------------------: 221.9
คุณยังสามารถเริ่มหรือแก้ไขกระบวนการใน คอนโซล Heroku ได้
การใช้ tfjs-node ก่อนเวอร์ชัน 1.2.4
หากคุณใช้แพ็คเกจ tfjs-node ก่อนเวอร์ชัน 1.2.4 แพ็คเกจนั้นต้องใช้ g++ เพื่อคอมไพล์ addon ดั้งเดิมของโหนดจากไฟล์ต้นฉบับ คุณจะต้องตรวจสอบให้แน่ใจว่าสแต็กของคุณมีแพ็คเกจ Linux build-essential (สแต็กเวอร์ชันใหม่กว่าอาจไม่มีเป็นค่าเริ่มต้น)
ปรับใช้โครงการ Node.js บนแพลตฟอร์ม Google Cloud
ข้อกำหนดเบื้องต้น
- มีโครงการ Google Cloud ที่ถูกต้องพร้อมบัญชีสำหรับการเรียกเก็บเงิน
- ติดตั้ง เครื่องมือไคลเอนต์ Google Cloud
- เพิ่มไฟล์ app.yaml เพื่อกำหนด ค่ารันไทม์ Node.js
ทำให้แอปใช้งานได้กับ GCloud
gcloud app deploy
เพื่อทำให้โค้ดในเครื่องและการกำหนดค่าใช้งานได้กับ App Engine ในบันทึกการปรับใช้คุณควรเห็นว่ามีการติดตั้ง tfjs-node แล้ว:
$ gcloud app deploy
Step #1:
Step #1: > @tensorflow/tfjs-node@1.2.5 install /app/node_modules/@tensorflow/tfjs-node
Step #1: > node scripts/install.js
Step #1:
Step #1: CPU-linux-1.2.5.tar.gz
Step #1: * Downloading libtensorflow
Step #1:
Step #1: * Building TensorFlow Node.js bindings
Step #1: added 88 packages from 85 contributors and audited 171 packages in 13.392s
Step #1: found 0 vulnerabilities
ในบันทึกของแอป คุณควรจะเห็นกระบวนการฝึกโมเดล:
Total params: 594922
Trainable params: 594922
Non-trainable params: 0
Epoch 1 / 20
===============================================================================>
745950ms 14626us/step - acc=0.920 loss=0.247 val_acc=0.987 val_loss=0.0445
Loss: 0.247 (train), 0.044 (val); Accuracy: 0.920 (train), 0.987 (val) (14.62 ms/step)
Epoch 2 / 20
===============================================================================>
818140ms 16042us/step - acc=0.980 loss=0.0655 val_acc=0.989 val_loss=0.0371
Loss: 0.066 (train), 0.037 (val); Accuracy: 0.980 (train), 0.989 (val) (16.04 ms/step)
Epoch 3 / 20
Epoch 3 / 20