פרוס פרויקט tfjs-node על פלטפורמת ענן

מסמך זה מתאר כיצד להפעיל תהליך 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 Platform מתועדת כאן .

פרוס פרויקט Node.js ב-Heroku

דרישות מוקדמות

  1. הותקנו Node.js ו-npm
  2. חשבון Heroku
  3. Heroku CLI

צור את אפליקציית Node.js

  1. צור תיקיה והעתק את הקבצים data.js , main.js , model.js ו- package.json מהדוגמה של mnist-node .
  2. ודא שהתלות @tensorflow/tfjs-node היא @1.2.4 או גרסה חדשה יותר.

בנה את האפליקציה שלך והפעל אותה באופן מקומי

  1. הפעל את הפקודה 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
  1. אמן את הדגם באופן מקומי על ידי הפעלת 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
  1. ודא שאתה מתעלם מחפצי בנייה, כגון node_modules, בקובץ .gitignore שלך.

צור ופרוס את אפליקציית Heroku

  1. צור אפליקציה חדשה באתר Heroku
  2. הקדש את השינוי שלך ודחוף ל-heroku master
$ git init
$ heroku git:remote -a your-app-name
$ git add .
$ git commit -m "First Commit"
$ git push heroku master
  1. ביומני הבנייה, אתה אמור להיות מסוגל לראות את חבילת 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++ כדי להדר את התוסף המקורי של הצומת מקבצי מקור. תצטרך לוודא שבמחסנית שלך יש את החבילה חיונית ל-Linux (ייתכן שבמחסנית גרסה חדשה יותר לא תהיה אותה כברירת מחדל).

פרוס פרויקט Node.js ב-Google Cloud Platform

דרישות מוקדמות

  1. יש לך פרויקט Google Cloud תקף עם חשבון חיוב
  2. התקן את כלי לקוח Google Cloud
  3. הוסף קובץ 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