Terapkan proyek tfjs-node pada platform cloud

Dokumen ini menjelaskan cara menjalankan proses Node.js dengan paket @tensorflow/tfjs-node di platform cloud.

Mulai dari tfjs-node@1.2.4, menjalankan proyek Node.js di platform cloud tidak memerlukan konfigurasi tambahan. Panduan ini akan menunjukkan cara menjalankan contoh mnist-node di repositori @tensorflow/tfjs-examples di Heroku dan GCloud. Dukungan Node.js Heroku didokumentasikan dalam artikel ini. Menjalankan Node.js di Google Cloud Platform didokumentasikan di sini .

Terapkan proyek Node.js di Heroku

Prasyarat

  1. Node.js dan npm diinstal
  2. akun Heroku
  3. CLI Heroku

Buat aplikasi Node.js

  1. Buat folder dan salin file data.js , main.js , model.js dan package.json dari contoh mnist-node .
  2. Pastikan ketergantungan @tensorflow/tfjs-node adalah @1.2.4 atau versi yang lebih baru.

Bangun aplikasi Anda dan jalankan secara lokal

  1. Jalankan perintah npm install di direktori lokal Anda untuk menginstal dependensi yang dideklarasikan dalam file package.json . Anda seharusnya dapat melihat bahwa paket tfjs-node telah diinstal dan libtensorflow diunduh.
$ 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. Latih model secara lokal dengan menjalankan 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. Pastikan Anda mengabaikan artefak build, seperti node_modules, di file .gitignore Anda.

Buat dan terapkan aplikasi Heroku

  1. Buat aplikasi baru di situs web Heroku
  2. Komit perubahan Anda dan dorong ke master heroku
$ git init
$ heroku git:remote -a your-app-name
$ git add .
$ git commit -m "First Commit"
$ git push heroku master
  1. Di log build, Anda akan melihat paket tfjs-node mendownload Library TensorFlow C dan memuat add-on asli 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:

Dalam proses log di Heroku, Anda seharusnya dapat melihat log pelatihan model:

Total params: 594922
Trainable params: 594922
Non-trainable params: 0
_________________________________________________________________
Epoch 1 / 20
Epoch 1 / 20
====>--------------------------------------------------------------------: 221.9

Anda juga dapat memulai atau men-debug proses di konsol Heroku.

Menggunakan tfjs-node sebelum versi 1.2.4

Jika Anda menggunakan paket tfjs-node sebelum versi 1.2.4, paket tersebut memerlukan g++ untuk mengkompilasi add-on asli node dari file sumber. Anda harus memastikan tumpukan Anda memiliki paket Linux build-essential (tumpukan versi yang lebih baru mungkin tidak memilikinya secara default).

Terapkan proyek Node.js di Google Cloud Platform

Prasyarat

  1. Miliki Proyek Google Cloud yang valid dengan akun penagihan
  2. Instal alat klien Google Cloud
  3. Tambahkan file app.yaml untuk mengonfigurasi Runtime Node.js

Terapkan aplikasi ke GCloud

Jalankan gcloud app deploy untuk menerapkan kode dan konfigurasi lokal ke App Engine. Di log penerapan, Anda seharusnya dapat melihat bahwa tfjs-node telah diinstal:

$ 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

Di log aplikasi, Anda seharusnya dapat melihat proses pelatihan model:

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