Tài liệu này mô tả cách chạy quy trình Node.js với gói @tensorflow/tfjs-node trên nền tảng đám mây.
Bắt đầu từ tfjs-node@1.2.4, việc chạy dự án Node.js trên nền tảng đám mây không yêu cầu cấu hình bổ sung. Hướng dẫn này sẽ chỉ ra cách chạy ví dụ mnist-node trong kho lưu trữ @tensorflow/tfjs-examples trên Heroku và GCloud. Hỗ trợ Node.js của Heroku được ghi lại trong bài viết này. Việc chạy Node.js trên Google Cloud Platform được ghi lại ở đây .
Triển khai dự án Node.js trên Heroku
Điều kiện tiên quyết
- Đã cài đặt Node.js và npm
- tài khoản Heroku
- Heroku CLI
Tạo ứng dụng Node.js
- Tạo một thư mục và sao chép các tệp
data.js
,main.js
,model.js
vàpackage.json
từ ví dụ mnist-node . - Đảm bảo phần phụ thuộc @tensorflow/tfjs-node là @1.2.4 hoặc phiên bản mới hơn.
Xây dựng ứng dụng của bạn và chạy nó cục bộ
- Chạy lệnh
npm install
trong thư mục cục bộ của bạn để cài đặt các phần phụ thuộc được khai báo trong tệppackage.json
. Bạn sẽ có thể thấy gói tfjs-node đã được cài đặt và libtensorflow được tải xuống.
$ 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
- Huấn luyện mô hình cục bộ bằng cách chạy
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
- Đảm bảo bạn bỏ qua các tạo phẩm xây dựng, chẳng hạn như node_modules, trong tệp .gitignore của mình.
Tạo và triển khai ứng dụng Heroku
- Tạo một ứng dụng mới trên trang web Heroku
- Cam kết thay đổi của bạn và đẩy tới heroku master
$ git init
$ heroku git:remote -a your-app-name
$ git add .
$ git commit -m "First Commit"
$ git push heroku master
- Trong nhật ký xây dựng, bạn sẽ có thể thấy gói tfjs-node tải xuống Thư viện TensorFlow C và tải addon gốc 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:
Trong quá trình ghi nhật ký trên Heroku, bạn sẽ có thể xem nhật ký đào tạo mô hình:
Total params: 594922
Trainable params: 594922
Non-trainable params: 0
_________________________________________________________________
Epoch 1 / 20
Epoch 1 / 20
====>--------------------------------------------------------------------: 221.9
Bạn cũng có thể bắt đầu hoặc gỡ lỗi quy trình trong bảng điều khiển Heroku.
Sử dụng nút tfjs trước phiên bản 1.2.4
Nếu bạn đang sử dụng gói tfjs-node trước phiên bản 1.2.4, gói này yêu cầu g++ để biên dịch phần bổ trợ gốc của nút từ các tệp nguồn. Bạn sẽ phải đảm bảo ngăn xếp của mình có gói thiết yếu cho bản dựng Linux (ngăn xếp phiên bản mới hơn có thể không có gói này theo mặc định).
Triển khai dự án Node.js trên Google Cloud Platform
Điều kiện tiên quyết
- Có Dự án Google Cloud hợp lệ với tài khoản thanh toán
- Cài đặt công cụ máy khách Google Cloud
- Thêm tệp app.yaml để định cấu hình Thời gian chạy Node.js
Triển khai ứng dụng lên GCloud
Chạy gcloud app deploy
để triển khai mã cục bộ và cấu hình cho App Engine. Trong nhật ký triển khai, bạn sẽ có thể thấy nút tfjs đã được cài đặt:
$ 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
Trong nhật ký ứng dụng, bạn sẽ có thể xem quy trình đào tạo mô hình:
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