این سند نحوه اجرای یک فرآیند Node.js را با بسته @tensorflow/tfjs-node در پلتفرمهای ابری توضیح میدهد.
با شروع از tfjs-node@1.2.4، اجرای پروژه Node.js روی پلتفرم های ابری نیازی به پیکربندی اضافی ندارد. این راهنما نحوه اجرای مثال mnist-node را در مخزن @tensorflow/tfjs-examples در Heroku و GCloud نشان می دهد. پشتیبانی Heroku's Node.js در این مقاله مستند شده است. اجرای Node.js در Google Cloud Platform در اینجا مستند شده است.
پروژه Node.js را در Heroku مستقر کنید
پیش نیازها
- Node.js و npm نصب شده است
- اکانت هیروکو
- Heroku CLI
برنامه Node.js را ایجاد کنید
- یک پوشه ایجاد کنید و فایل های
data.js
،main.js
،model.js
وpackage.json
را از مثال mnist-node کپی کنید. - مطمئن شوید که وابستگی @tensorflow/tfjs-node 1.2.4@ یا نسخه جدیدتر باشد.
برنامه خود را بسازید و آن را به صورت محلی اجرا کنید
- دستور
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
- با اجرای
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
- مطمئن شوید که مصنوعات ساخت مانند node_modules را در فایل .gitignore خود نادیده می گیرید.
برنامه Heroku را ایجاد و اجرا کنید
- یک برنامه جدید در وب سایت Heroku ایجاد کنید
- تغییر خود را انجام دهید و به سمت استاد هیروکو فشار بیاورید
$ git init
$ heroku git:remote -a your-app-name
$ git add .
$ git commit -m "First Commit"
$ git push heroku master
- در لاگ های ساخت، باید بتوانید بسته tfjs-node را در حال بارگیری کتابخانه TensorFlow 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:
در گزارشهای فرآیند در Heroku، باید بتوانید گزارشهای آموزشی مدل را ببینید:
Total params: 594922
Trainable params: 594922
Non-trainable params: 0
_________________________________________________________________
Epoch 1 / 20
Epoch 1 / 20
====>--------------------------------------------------------------------: 221.9
همچنین می توانید فرآیند را در کنسول Heroku شروع یا اشکال زدایی کنید.
استفاده از tfjs-node قبل از نسخه 1.2.4
اگر از بسته tfjs-node قبل از نسخه 1.2.4 استفاده می کنید، بسته به g++ برای کامپایل افزونه اصلی گره از فایل های منبع نیاز دارد. شما باید مطمئن شوید که پشته شما دارای بسته اصلی لینوکس است (ممکن است پشته نسخه جدیدتر آن را به صورت پیش فرض نداشته باشد).
پروژه Node.js را در Google Cloud Platform اجرا کنید
پیش نیازها
- یک پروژه Google Cloud معتبر با حساب صورتحساب داشته باشید
- ابزار سرویس گیرنده Google Cloud را نصب کنید
- فایل app.yaml را برای پیکربندی Node.js Runtime اضافه کنید
استقرار برنامه در GCloud
gcloud app deploy
را اجرا کنید تا کد محلی و تنظیمات را در App Engine اجرا کنید. در Deploy logs باید بتوانید ببینید که tfjs-node نصب شده است:
$ 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
در لاگ برنامه ها، باید بتوانید روند آموزش مدل را مشاهده کنید:
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