Implementar el proyecto tfjs-node en la plataforma en la nube

Este documento describe cómo ejecutar un proceso Node.js con el paquete @ tensorflow / tfjs-node en plataformas en la nube.

A partir de tfjs-node@1.2.4, ejecutar el proyecto Node.js en plataformas en la nube no requiere configuración adicional. Esta guía le mostrará cómo ejecutar el mnist-nodo ejemplo en el @ tensorflow / tfjs-ejemplos repositorio en Heroku y gcloud. Node.js apoyo de Heroku se documenta en este artículo . Node.js ejecutan en Google Cloud Platform está documentado aquí .

Implementar el proyecto Node.js en Heroku

Prerrequisitos

  1. Node.js y npm instalados
  2. Cuenta de Heroku
  3. Heroku CLI

Crea la aplicación Node.js

  1. Crear una carpeta y copiar los data.js , main.js , model.js y package.json archivos de la mnist nodos ejemplo.
  2. Asegúrese de que la dependencia @ tensorflow / tfjs-node sea @ 1.2.4 o una versión más reciente.

Cree su aplicación y ejecútela localmente

  1. Ejecutar el npm install de comandos en el directorio local para instalar las dependencias que se declaran en el package.json archivo. Debería poder ver que el paquete tfjs-node está instalado y libtensorflow está descargado.
$ 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. Entrenar el modelo a nivel local mediante la ejecución de 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. Asegúrese de ignorar los artefactos de compilación, como node_modules, en su archivo .gitignore.

Cree e implemente la aplicación Heroku

  1. Cree una nueva aplicación en el sitio web de Heroku
  2. Compromete tu cambio y presiona para heroku master
$ git init
$ heroku git:remote -a your-app-name
$ git add .
$ git commit -m "First Commit"
$ git push heroku master
  1. En los registros de compilación, debería poder ver el paquete tfjs-node descargando la biblioteca de TensorFlow C y cargando el complemento nativo de 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:

En los registros de proceso en Heroku, debería poder ver los registros de entrenamiento del modelo:

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

También puede iniciar o depurar el proceso de Heroku consola .

Usando tfjs-node antes de la versión 1.2.4

Si está utilizando el paquete tfjs-node antes de la versión 1.2.4, el paquete requiere g ++ para compilar el complemento nativo del nodo a partir de los archivos fuente. Deberá asegurarse de que su pila tenga el paquete esencial de compilación de Linux (es posible que la pila de la versión más reciente no lo tenga por defecto).

Implementar el proyecto Node.js en Google Cloud Platform

Prerrequisitos

  1. Tener un proyecto de Google Cloud válido con una cuenta de facturación.
  2. Instalar Google Cloud herramienta de cliente
  3. Añadir app.yaml archivo para configurar el Node.js tiempo de ejecución

Implementar la aplicación en GCloud

Ejecutar gcloud app deploy para desplegar el código local y configuraciones en App Engine. En los registros de implementación, debería poder ver que tfjs-node está instalado:

$ 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

En los registros de aplicaciones, debería poder ver el proceso de entrenamiento del modelo:

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