این سند نحوه نصب و استفاده از TensorFlow.js را در محیط مرورگر و در Node.js به شما نشان میدهد.
تنظیم مرورگر
دو روش توصیه شده برای استفاده از TensorFlow.js در یک پروژه مبتنی بر مرورگر وجود دارد:
از تگ اسکریپت استفاده کنید.
از طریق NPM نصب کنید و از ابزارهای ساخت مانند Parcel ، webpack یا Rollup استفاده کنید.
اگر در توسعه وب تازهکار هستید، یا قبلاً از ابزارهای ساخت جاوا اسکریپت استفاده نکردهاید، ممکن است بخواهید ابتدا رویکرد تگ اسکریپت را امتحان کنید. اگر معمولاً داراییهای وب خود را بستهبندی یا پردازش میکنید، یا قصد دارید برنامههای بزرگتری بنویسید، باید استفاده از ابزارهای ساخت را در نظر بگیرید.
از تگ اسکریپت استفاده کنید
برای دریافت TensorFlow.js با استفاده از تگ اسکریپت، کد زیر را به فایل HTML اصلی خود اضافه کنید:
<script src="https://cdn.jsdelivr.net/npm/@tensorflow/tfjs@latest/dist/tf.min.js"></script>
مثال زیر نحوه تعریف و آموزش یک مدل در مرورگر را نشان میدهد:
<!DOCTYPE html>
<html lang="en-US">
<head>
<meta charset="utf-8" />
<title>TensorFlow.js browser example</title>
<!-- Load TensorFlow.js from a script tag -->
<script src="https://cdn.jsdelivr.net/npm/@tensorflow/tfjs@latest/dist/tf.min.js"></script>
</head>
<body>
<h1>TensorFlow.js example</h1>
<h2>Open the console to see the results.</h2>
<script>
// Define a model for linear regression. The script tag makes `tf` available
// as a global variable.
const model = tf.sequential();
model.add(tf.layers.dense({units: 1, inputShape: [1]}));
model.compile({loss: 'meanSquaredError', optimizer: 'sgd'});
// Generate some synthetic data for training.
const xs = tf.tensor2d([1, 2, 3, 4], [4, 1]);
const ys = tf.tensor2d([1, 3, 5, 7], [4, 1]);
// Train the model using the data.
model.fit(xs, ys, {epochs: 10}).then(() => {
// Use the model to do inference on a data point the model hasn't seen before:
model.predict(tf.tensor2d([5], [1, 1])).print();
// Open the browser devtools to see the output
});
</script>
</body>
</html>
برای اجرای مثال، مراحل زیر را دنبال کنید:
- سند نمونه را در فایلی به نام
index.htmlذخیره کنید. برای باز کردن آن در مرورگر پیشفرض خود، روی
index.htmlدوبار کلیک کنید.به عنوان یک روش جایگزین، میتوانید با اجرای
npx http-serverدر همان دایرکتوریindex.html،index.htmlاجرا کنید. (اگر از شما اجازه نصبhttp-serverخواسته شد،yرا وارد کنید.) سپس در مرورگر خود بهhttp://localhost:8080بروید.برای مشاهده خروجی اسکریپت، کنسول مرورگر را باز کنید.
برای دیدن یک پیشبینی جدید (و به احتمال زیاد متفاوت) صفحه را رفرش کنید.
نصب از NPM
برای نصب TensorFlow.js از NPM، از npm CLI یا yarn استفاده کنید.
ان پی ام
npm install @tensorflow/tfjs
نخ
yarn add @tensorflow/tfjs
مثال زیر نحوه وارد کردن TensorFlow.js، تعریف مدل و آموزش مدل را نشان میدهد.
import * as tf from '@tensorflow/tfjs';
// Define a model for linear regression.
const model = tf.sequential();
model.add(tf.layers.dense({units: 1, inputShape: [1]}));
model.compile({loss: 'meanSquaredError', optimizer: 'sgd'});
// Generate some synthetic data for training.
const xs = tf.tensor2d([1, 2, 3, 4], [4, 1]);
const ys = tf.tensor2d([1, 3, 5, 7], [4, 1]);
// Train the model using the data.
model.fit(xs, ys, {epochs: 10}).then(() => {
// Use the model to do inference on a data point the model hasn't seen before:
model.predict(tf.tensor2d([5], [1, 1])).print();
// Open the browser devtools to see the output
});
تنظیمات Node.js
برای استفاده از TensorFlow.js در Node.js، از npm CLI یا yarn برای تکمیل یکی از گزینههای نصب زیر استفاده کنید.
برای کسب اطلاعات بیشتر در مورد استفاده از TensorFlow.js در Node.js، به راهنمای Node.js مراجعه کنید. برای اطلاعات بیشتر در مورد نصب، به مخزن TensorFlow.js برای Node.js مراجعه کنید.
گزینه ۱: نصب TensorFlow.js به همراه اتصالات بومی C++.
ماژول tfjs-node اجرای TensorFlow بومی را در برنامههای جاوااسکریپت تحت زمان اجرای Node.js فراهم میکند که توسط فایل باینری TensorFlow C تسریع میشود.
نصب tfjs-node :
ان پی ام
npm install @tensorflow/tfjs-node
نخ
yarn add @tensorflow/tfjs-node
مثال زیر نحوه وارد کردن tfjs-node ، تعریف یک مدل و آموزش مدل را نشان میدهد.
// Use `tfjs-node`. Note that `tfjs` is imported indirectly by `tfjs-node`.
const tf = require('@tensorflow/tfjs-node');
// Define a simple model.
const model = tf.sequential();
model.add(tf.layers.dense({units: 100, activation: 'relu', inputShape: [10]}));
model.add(tf.layers.dense({units: 1, activation: 'linear'}));
model.compile({optimizer: 'sgd', loss: 'meanSquaredError'});
const xs = tf.randomNormal([100, 10]);
const ys = tf.randomNormal([100, 1]);
// Train the model.
model.fit(xs, ys, {
epochs: 100,
callbacks: {
onEpochEnd: (epoch, log) => console.log(`Epoch ${epoch}: loss = ${log.loss}`)
}
});
گزینه ۲: نصب TensorFlow.js برای GPU
(فقط لینوکس) اگر سیستم شما دارای پردازنده گرافیکی NVIDIA® با پشتیبانی از CUDA است، میتوانید از بسته GPU برای بهبود عملکرد استفاده کنید.
نصب tfjs-node-gpu :
ان پی ام
npm install @tensorflow/tfjs-node-gpu
نخ
yarn add @tensorflow/tfjs-node-gpu
مثال زیر نحوه وارد کردن tfjs-node-gpu ، تعریف یک مدل و آموزش مدل را نشان میدهد.
// Use `tfjs-node-gpu`. Note that `tfjs` is imported indirectly by `tfjs-node-gpu`.
const tf = require('@tensorflow/tfjs-node-gpu');
// Define a simple model.
const model = tf.sequential();
model.add(tf.layers.dense({units: 100, activation: 'relu', inputShape: [10]}));
model.add(tf.layers.dense({units: 1, activation: 'linear'}));
model.compile({optimizer: 'sgd', loss: 'meanSquaredError'});
const xs = tf.randomNormal([100, 10]);
const ys = tf.randomNormal([100, 1]);
// Train the model.
model.fit(xs, ys, {
epochs: 100,
callbacks: {
onEpochEnd: (epoch, log) => console.log(`Epoch ${epoch}: loss = ${log.loss}`)
}
});
گزینه ۳: نسخه خالص جاوا اسکریپت را نصب کنید
ماژول tfjs همان پکیجی است که در مرورگر استفاده میکنید. از نظر عملکرد، کندترین گزینه Node.js است.
tfjs را نصب کنید:
ان پی ام
npm install @tensorflow/tfjs
نخ
yarn add @tensorflow/tfjs
مثال زیر نحوه وارد کردن tfjs ، تعریف مدل و آموزش مدل را نشان میدهد.
// Use `tfjs`.
const tf = require('@tensorflow/tfjs');
// Define a simple model.
const model = tf.sequential();
model.add(tf.layers.dense({units: 100, activation: 'relu', inputShape: [10]}));
model.add(tf.layers.dense({units: 1, activation: 'linear'}));
model.compile({optimizer: 'sgd', loss: 'meanSquaredError'});
const xs = tf.randomNormal([100, 10]);
const ys = tf.randomNormal([100, 1]);
// Train the model.
model.fit(xs, ys, {
epochs: 100,
callbacks: {
onEpochEnd: (epoch, log) => console.log(`Epoch ${epoch}: loss = ${log.loss}`)
}
});
تایپ اسکریپت
اگر از TensorFlow.js در یک پروژه TypeScript استفاده میکنید و بررسی دقیق null بودن را فعال کردهاید، ممکن است لازم باشد skipLibCheck: true در tsconfig.json خود تنظیم کنید تا از خطاها در حین کامپایل جلوگیری شود.