Bu belgede, bulut platformlarında @tensorflow/tfjs-node paketiyle bir Node.js işleminin nasıl çalıştırılacağı açıklanmaktadır.
tfjs-node@1.2.4'ten itibaren Node.js projesini bulut platformlarında çalıştırmak ek yapılandırma gerektirmez. Bu kılavuz, mnist-node örneğinin Heroku ve GCloud'daki @tensorflow/tfjs-examples deposunda nasıl çalıştırılacağını gösterecektir. Heroku'nun Node.js desteği bu makalede belgelenmiştir. Node.js'nin Google Cloud Platform'da çalıştırılması burada belgelenmiştir.
Node.js projesini Heroku'da dağıtma
Önkoşullar
- Node.js ve npm yüklü
 - Heroku hesabı
 - Heroku CLI
 
Node.js uygulamasını oluşturun
-  Bir klasör oluşturun ve mnist-node örneğinden 
data.js,main.js,model.jsvepackage.jsondosyalarını kopyalayın. - @tensorflow/tfjs-node bağımlılığının @1.2.4 veya daha yeni bir sürüm olduğundan emin olun.
 
Uygulamanızı oluşturun ve yerel olarak çalıştırın
-  
package.jsondosyasında bildirilen bağımlılıkları yüklemek için yerel dizininizdenpm installkomutunu çalıştırın. tfjs-node paketinin kurulduğunu ve libtensorflow'un indirildiğini görebilmeniz gerekir. 
$ 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
-  
npm startçalıştırarak modeli yerel olarak eğitin. 
$ 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
- .gitignore dosyanızdaki node_modules gibi derleme yapıtlarını yok saydığınızdan emin olun.
 
Heroku uygulamasını oluşturun ve dağıtın
- Heroku web sitesinde yeni bir uygulama oluşturun
 - Değişikliğinizi tamamlayın ve heroku master'a iletin
 
$ git init
$ heroku git:remote -a your-app-name
$ git add .
$ git commit -m "First Commit"
$ git push heroku master
- Derleme günlüklerinde, tfjs-node paketinin TensorFlow C Kitaplığını indirdiğini ve TensorFlow Node.js yerel eklentisini yüklediğini görebilmeniz gerekir:
 
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:
Heroku'daki süreç günlüklerinde model eğitim günlüklerini görebilmeniz gerekir:
Total params: 594922
Trainable params: 594922
Non-trainable params: 0
_________________________________________________________________
Epoch 1 / 20
Epoch 1 / 20
====>--------------------------------------------------------------------: 221.9
İşlemi Heroku konsolunda da başlatabilir veya hata ayıklayabilirsiniz.
1.2.4 sürümünden önce tfjs-node'un kullanılması
Sürüm 1.2.4'ten önceki tfjs-node paketini kullanıyorsanız paket, düğüm yerel eklentisini kaynak dosyalardan derlemek için g++ gerektirir. Yığınınızın Linux build-essential paketine sahip olduğundan emin olmanız gerekecektir (daha yeni sürüm yığınında varsayılan olarak bu paket bulunmayabilir).
Node.js projesini Google Cloud Platform'da dağıtın
Önkoşullar
- Faturalandırma hesabına sahip geçerli bir Google Cloud Projeniz olsun
 - Google Cloud istemci aracını yükleyin
 - Node.js Çalışma Zamanını yapılandırmak için app.yaml dosyasını ekleyin
 
Uygulamayı GCloud'a dağıtın
 Yerel kodu ve yapılandırmaları App Engine'e dağıtmak için gcloud app deploy çalıştırın. Dağıtım günlüklerinde tfjs-node'un kurulu olduğunu görebilmeniz gerekir:
$ 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
Uygulama günlüklerinde model eğitim sürecini görebilmeniz gerekir:
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