Dziękujemy za zapoznanie się z Google I/O. Zobacz wszystkie sesje na żądanie Oglądaj na żądanie

Wdróż projekt tfjs-node na platformie w chmurze

Ten dokument opisuje, jak uruchomić proces Node.js z pakietem @tensorflow/tfjs-node na platformach w chmurze.

Począwszy od tfjs-node@1.2.4, uruchomienie projektu Node.js na platformach w chmurze nie wymaga dodatkowej konfiguracji. Ten poradnik pokaże jak uruchomić mnist węzłów przykład w @ tensorflow / tfjs-przykłady repozytorium Heroku i GCloud. Wsparcie Heroku za node.js jest udokumentowana w tym artykule . Przebiegu node.js na Google Cloud Platform jest udokumentowane tutaj .

Wdróż projekt Node.js w Heroku

Warunki wstępne

  1. Zainstalowano Node.js i npm
  2. Konto Heroku
  3. Heroku CLI

Utwórz aplikację Node.js

  1. Utwórz folder i skopiuj data.js , main.js , model.js i package.json pliki z mnist węzłów np.
  2. Upewnij się, że zależność @tensorflow/tfjs-node to @1.2.4 lub nowsza wersja.

Zbuduj swoją aplikację i uruchom ją lokalnie

  1. Uruchom npm install polecenia w Twoim katalogu zainstalować zależności, które są zadeklarowane w package.json pliku. Powinieneś być w stanie zobaczyć, że pakiet tfjs-node jest zainstalowany i pobrany libtensorflow.
$ 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. Trenować model lokalnie poprzez uruchomienie 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. Upewnij się, że ignorujesz artefakty kompilacji, takie jak node_modules, w pliku .gitignore.

Utwórz i wdróż aplikację Heroku

  1. Utwórz nową aplikację na stronie Heroku
  2. Zatwierdź swoją zmianę i popchnij do mistrza heroku
$ git init
$ heroku git:remote -a your-app-name
$ git add .
$ git commit -m "First Commit"
$ git push heroku master
  1. W dziennikach kompilacji powinieneś widzieć pakiet tfjs-node pobierający bibliotekę TensorFlow C i ładujący natywny dodatek 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:

W dziennikach procesu w Heroku powinieneś być w stanie zobaczyć dzienniki treningowe modelu:

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

Można również uruchomić lub debugowania proces w Heroku konsoli .

Korzystanie z tfjs-node przed wersją 1.2.4

Jeśli używasz pakietu tfjs-node przed wersją 1.2.4, pakiet wymaga g++ do skompilowania natywnego dodatku węzła z plików źródłowych. Będziesz musiał upewnić się, że twój stos zawiera pakiet podstawowy dla systemu Linux (stos nowszych wersji może nie mieć go domyślnie).

Wdróż projekt Node.js na Google Cloud Platform

Warunki wstępne

  1. Mieć ważny projekt Google Cloud z kontem rozliczeniowym
  2. Google Cloud zainstalować narzędzia klienckie
  3. Dodaj app.yaml plik konfiguracji node.js Runtime

Wdróż aplikację w GCloud

Uruchom gcloud app deploy do wyzwolenia lokalnego kodu i konfiguracjach App Engine. W dziennikach wdrażania powinieneś być w stanie zobaczyć, że tfjs-node jest zainstalowany:

$ 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

W dziennikach aplikacji powinieneś być w stanie zobaczyć proces uczenia modelu:

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