Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
tensorflow
GitHub Repository: tensorflow/docs-l10n
Path: blob/master/site/ja/js/guide/node_in_cloud.md
25118 views

クラウドプラットフォームに tfjs-node プロジェクトをデプロイする

このドキュメントでは、クラウドプラットフォームで @tensorflow/tfjs-node パッケージを使用して Node.js プロセスを実行する方法について解説します。

[email protected] 以降、クラウドプラットフォームで Node.js プロジェクトを実行するには、追加の構成は必要ありません。このガイドでは、Heroku と GCloud の @tensorflow/tfjs-examples リポジトリでmnist-nodeサンプルを実行する方法を紹介します。Heroku の Node.js サポートは、この記事に記載されています。Google Cloud Platform で Node.js を実行する方法は、こちらに記載されています。

Heroku に Node.js プロジェクトをデプロイする

前提条件

  1. Node.js と npm がインストールされていること

  2. Heroku アカウント

  3. Heroku CLI

Node.js アプリの作成

  1. フォルダを作成し、data.jsmain.jsmodel.jsおよびpackage.jsonファイルを mnist-node の例からコピーします。

  2. @tensorflow/tfjs-node の依存関係が@1.2.4 以降であることを確認してください。

アプリを構築してローカルで実行する

  1. ローカルディレクトリでnpm installコマンドを実行して、package.jsonファイルで宣言されている依存関係をインストールします。tfjs-node パッケージがインストールされ、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. 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. .gitignore ファイル内の node_modules などのビルドアーティファクトを無視してください。

Heroku アプリを作成してデプロイする

  1. Heroku Web サイトで新しいアプリを作成する

  2. 変更をコミットして Heroku マスターにプッシュする

$ git init $ heroku git:remote -a your-app-name $ git add . $ git commit -m "First Commit" $ git push heroku master
  1. ビルドログで、tfjs-node パッケージが TensorFlow C Library をダウンロードし、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:

Heroku のプロセスログで、モデルのトレーニングログを確認します。

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

また、Heroku コンソールでプロセスを開始またはデバッグすることもできます。

バージョン 1.2.4 より前の tfjs-node の使用

バージョン 1.2.4 より前の tfjs-node パッケージを使用している場合、パッケージには、ソースファイルからノードのネイティブアドオンをコンパイルするための g ++ が必要です。スタックに Linux ビルド必須パッケージが含まれていることを確認する必要があります (新しいバージョンのスタックにはデフォルトで含まれていない場合があります)。

Node.js プロジェクトを Google Cloud プラットフォームにデプロイする

###前提条件

  1. 請求先アカウントのある有効な Google Cloud プロジェクトを持っていること

  2. Google Cloud クライアントツールがインストールされていること

  3. Node.js ランタイム を構成するために app.yaml ファイルを追加すること

アプリを GCloud にデプロイする

gcloud app deployを実行して、ローカルコードと構成を App Engine にデプロイします。デプロイログで、tfjs-node がインストールされていることを確認します。

$ gcloud app deploy Step #1: Step #1: > @tensorflow/[email protected] 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

アプリのログで、モデルのトレーニングプロセスを確認できます。

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