يصف هذا المستند كيفية تشغيل عملية Node.js باستخدام حزمة @tensorflow/tfjs-node على الأنظمة الأساسية السحابية.
بدءًا من tfjs-node@1.2.4، لا يتطلب تشغيل مشروع Node.js على الأنظمة الأساسية السحابية تكوينًا إضافيًا. سيوضح هذا الدليل كيفية تشغيل مثال عقدة mnist في مستودع @tensorflow/tfjs-examples على Heroku وGCloud. تم توثيق دعم Heroku's Node.js في هذه المقالة . تم توثيق تشغيل Node.js على Google Cloud Platform هنا .
نشر مشروع Node.js على Heroku
المتطلبات الأساسية
- تم تثبيت Node.js وnpm
- حساب هيروكو
- هيروكو كلي
قم بإنشاء تطبيق 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
- تأكد من تجاهل عناصر البناء، مثل وحدات العقدة، في ملف .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 قبل الإصدار 1.2.4
إذا كنت تستخدم حزمة tfjs-node قبل الإصدار 1.2.4، فإن الحزمة تتطلب g++ لتجميع الملحق الأصلي للعقدة من الملفات المصدر. سيتعين عليك التأكد من أن مجموعتك تحتوي على الحزمة الأساسية لبناء نظام التشغيل Linux (قد لا تحتوي حزمة الإصدار الأحدث على الحزمة الافتراضية).
نشر مشروع Node.js على Google Cloud Platform
المتطلبات الأساسية
- أن يكون لديك مشروع Google Cloud صالح مع حساب الفوترة
- قم بتثبيت أداة عميل Google Cloud
- أضف ملف app.yaml لتكوين وقت تشغيل Node.js
نشر التطبيق على GCloud
قم بتشغيل gcloud app deploy
لنشر التعليمات البرمجية والتكوينات المحلية إلى App Engine. في سجلات النشر، يجب أن تكون قادرًا على رؤية تثبيت عقدة tfjs:
$ 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