Partecipa al simposio Women in ML il 7 dicembre Registrati ora

Distribuisci il progetto tfjs-node su piattaforma cloud

Mantieni tutto organizzato con le raccolte Salva e classifica i contenuti in base alle tue preferenze.

Questo documento descrive come eseguire un processo Node.js con il pacchetto @tensorflow/tfjs-node su piattaforme cloud.

A partire da tfjs-node@1.2.4, l'esecuzione del progetto Node.js su piattaforme cloud non richiede una configurazione aggiuntiva. Questa guida mostra come eseguire il mnist nodi esempio nel @ tensorflow / tfjs-esempi repository su Heroku e GCloud. Supporto Node.js di Heroku è documentato in questo articolo . Esecuzione Node.js su Google Cloud Platform è documentato qui .

Distribuisci il progetto Node.js su Heroku

Prerequisiti

  1. Node.js e npm installati
  2. Conto Heroku
  3. Heroku CLI

Crea l'app Node.js

  1. Creare una cartella e copiare i data.js , main.js , model.js e package.json file dal mnist-nodo di esempio.
  2. Assicurati che la dipendenza @tensorflow/tfjs-node sia @1.2.4 o una versione più recente.

Crea la tua app ed eseguila localmente

  1. Eseguire il npm install comando nella cartella locale per installare le dipendenze che sono dichiarati nel package.json file. Dovresti essere in grado di vedere che il pacchetto tfjs-node è installato e libtensorflow è stato scaricato.
$ 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. Addestrare il modello a livello locale eseguendo 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. Assicurati di ignorare gli artefatti di build, come node_modules, nel tuo file .gitignore.

Crea e distribuisci l'app Heroku

  1. Crea una nuova app sul sito di Heroku
  2. Impegna il tuo cambiamento e spingi al maestro Heroku
$ git init
$ heroku git:remote -a your-app-name
$ git add .
$ git commit -m "First Commit"
$ git push heroku master
  1. Nei log di build, dovresti essere in grado di vedere il pacchetto tfjs-node che scarica la libreria TensorFlow C e carica l'addon nativo di 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:

Nei registri di processo su Heroku, dovresti essere in grado di vedere i registri di addestramento del modello:

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

È inoltre possibile avviare o eseguire il debug del processo di Heroku console .

Utilizzo di tfjs-node prima della versione 1.2.4

Se stai usando il pacchetto tfjs-node prima della versione 1.2.4, il pacchetto richiede g++ per compilare l'addon nativo del nodo dai file sorgente. Dovrai assicurarti che il tuo stack abbia il pacchetto Linux build-essential (lo stack della versione più recente potrebbe non averlo come impostazione predefinita).

Distribuisci il progetto Node.js su Google Cloud Platform

Prerequisiti

  1. Avere un progetto Google Cloud valido con account di fatturazione
  2. Installare Google Cloud strumento client
  3. Aggiungere app.yaml file per configurare il Node.js Runtime

Distribuisci l'app su GCloud

Eseguire gcloud app deploy per distribuire il codice locale e configurazioni per App Engine. Nei registri di distribuzione dovresti essere in grado di vedere che tfjs-node è installato:

$ 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

Nei registri delle app, dovresti essere in grado di vedere il processo di addestramento del modello:

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