Diese Seite wurde von der Cloud Translation API übersetzt.
Switch to English

Stellen Sie das tfjs-node-Projekt auf der Cloud-Plattform bereit

In diesem Dokument wird beschrieben, wie ein Node.js-Prozess mit dem Paket @ tensorflow / tfjs-node auf Cloud-Plattformen ausgeführt wird.

Ab tfjs-node@1.2.4 erfordert das Ausführen des Node.js-Projekts auf Cloud-Plattformen keine zusätzliche Konfiguration. Diese Anleitung zeigt, wie das Beispiel mnist-node im Repository @ tensorflow / tfjs-examples auf Heroku und GCloud ausgeführt wird. Die Unterstützung von Heroku Node.js ist in diesem Artikel dokumentiert. Das Ausführen von Node.js auf der Google Cloud Platform ist hier dokumentiert.

Stellen Sie das Node.js-Projekt auf Heroku bereit

Voraussetzungen

  1. Node.js und npm installiert
  2. Heroku-Konto
  3. Heroku CLI

Erstellen Sie die Node.js-App

  1. Erstellen Sie einen Ordner und kopieren Sie die data.js , main.js , model.js und package.json aus dem Beispiel mnist-node .
  2. Stellen Sie sicher, dass die Abhängigkeit von @ tensorflow / tfjs-node @ 1.2.4 oder eine neuere Version ist.

Erstellen Sie Ihre App und führen Sie sie lokal aus

  1. Führen Sie den Befehl npm install in Ihrem lokalen Verzeichnis aus, um die Abhängigkeiten zu installieren, die in der Datei package.json deklariert sind. Sie sollten sehen können, dass das Paket tfjs-node installiert und libtensorflow heruntergeladen ist.
 $ 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. Trainieren Sie das Modell lokal, indem Sie 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. Stellen Sie sicher, dass Sie Build-Artefakte wie node_modules in Ihrer .gitignore-Datei ignorieren.

Erstellen und implementieren Sie die Heroku-App

  1. Erstellen Sie eine neue App auf der Heroku-Website
  2. Übernehmen Sie Ihr Wechselgeld und drücken Sie es an den Heroku-Meister
 $ git init
$ heroku git:remote -a your-app-name
$ git add .
$ git commit -m "First Commit"
$ git push heroku master
 
  1. In den Build-Protokollen sollte das tfjs-node-Paket angezeigt werden, das die TensorFlow C-Bibliothek herunterlädt und das native Addon TensorFlow Node.js lädt:
 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:
 

In den Prozessprotokollen auf Heroku sollten Sie die Modell-Trainingsprotokolle sehen können:

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

Sie können den Prozess auch in der Heroku- Konsole starten oder debuggen.

Verwenden von tfjs-node vor Version 1.2.4

Wenn Sie das Paket tfjs-node vor Version 1.2.4 verwenden, benötigt das Paket g ++, um das native Addon des Knotens aus den Quelldateien zu kompilieren. Sie müssen sicherstellen, dass Ihr Stack über das Linux-Build-Essential-Paket verfügt (der neuere Stack enthält möglicherweise nicht die Standardeinstellung).

Stellen Sie das Node.js-Projekt auf der Google Cloud Platform bereit

Voraussetzungen

  1. Haben Sie ein gültiges Google Cloud-Projekt mit Rechnungskonto
  2. Installieren Sie das Google Cloud- Client-Tool
  3. Fügen Sie die Datei app.yaml hinzu, um die Node.js-Laufzeit zu konfigurieren

Stellen Sie die App auf GCloud bereit

Führen Sie gcloud app deploy , um den lokalen Code und die Konfigurationen für App Engine gcloud app deploy . In den Bereitstellungsprotokollen sollten Sie sehen können, dass tfjs-node installiert ist:

 $ 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
 

In den Apps-Protokollen sollten Sie den Modellschulungsprozess sehen können:

 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