Cette page a été traduite par l'API Cloud Translation.
Switch to English

Déployer le projet tfjs-node sur la plateforme cloud

Ce document décrit comment exécuter un processus Node.js avec le package @ tensorflow / tfjs-node sur les plates-formes cloud.

À partir de tfjs-node@1.2.4, l'exécution du projet Node.js sur des plates-formes cloud ne nécessite pas de configuration supplémentaire. Ce guide montrera comment exécuter l'exemple de nœud mnist dans le référentiel @ tensorflow / tfjs-examples sur Heroku et GCloud. La prise en charge de Heroku Node.js est documentée dans cet article . L'exécution de Node.js sur Google Cloud Platform est documentée ici .

Déployer le projet Node.js sur Heroku

Conditions préalables

  1. Node.js et npm installés
  2. Compte Heroku
  3. CLI Heroku

Créez l'application Node.js

  1. Créez un dossier et copiez les data.js , main.js , model.js et package.json à partir de l'exemple de nœud mnist .
  2. Assurez-vous que la dépendance @ tensorflow / tfjs-node est @ 1.2.4 ou une version plus récente.

Créez votre application et exécutez-la localement

  1. Exécutez la commande npm install dans votre répertoire local pour installer les dépendances déclarées dans le fichier package.json . Vous devriez être en mesure de voir que le package tfjs-node est installé et que libtensorflow est téléchargé.
$ 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. Entraînez le modèle localement en exécutant 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. Assurez-vous d'ignorer les artefacts de construction, tels que node_modules, dans votre fichier .gitignore.

Créez et déployez l'application Heroku

  1. Créer une nouvelle application sur le site Web Heroku
  2. Engagez votre changement et poussez vers le maître heroku
$ git init
$ heroku git:remote -a your-app-name
$ git add .
$ git commit -m "First Commit"
$ git push heroku master
  1. Dans les journaux de construction, vous devriez pouvoir voir le package tfjs-node télécharger la bibliothèque TensorFlow C et charger l'addon natif 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:

Dans les journaux de processus sur Heroku, vous devriez pouvoir voir les journaux d'entraînement du modèle:

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

Vous pouvez également démarrer ou déboguer le processus dans la console Heroku.

Utilisation de tfjs-node avant la version 1.2.4

Si vous utilisez le package tfjs-node avant la version 1.2.4, le package nécessite g ++ pour compiler l'addon natif du nœud à partir des fichiers source. Vous devrez vous assurer que votre pile contient le package Linux essentiel à la construction (la pile de la nouvelle version peut ne pas l'avoir par défaut).

Déployer le projet Node.js sur Google Cloud Platform

Conditions préalables

  1. Avoir un projet Google Cloud valide avec un compte de facturation
  2. Installer l' outil client Google Cloud
  3. Ajoutez le fichier app.yaml pour configurer le Runtime Node.js

Déployer l'application sur GCloud

Exécutez gcloud app deploy pour déployer le code local et les configurations sur App Engine. Dans les journaux de déploiement, vous devriez être en mesure de voir que tfjs-node est installé:

$ 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

Dans les journaux des applications, vous devriez pouvoir voir le processus de formation du modèle:

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