این سند به شما نشان می دهد که چگونه 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
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 مراجعه کنید.
گزینه 1: TensorFlow.js را با اتصالات C++ بومی نصب کنید.
ماژول tfjs-node
اجرای TensorFlow بومی را در برنامههای جاوا اسکریپت تحت زمان اجرا Node.js فراهم میکند که توسط باینری TensorFlow C تسریع میشود.
tfjs-node
نصب کنید:
NPM
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}`)
}
});
گزینه 2: نصب TensorFlow.js برای GPU
(فقط لینوکس) اگر سیستم شما دارای پردازنده گرافیکی NVIDIA® با پشتیبانی از CUDA است، می توانید از بسته گرافیکی برای بهبود عملکرد استفاده کنید.
tfjs-node-gpu
را نصب کنید:
NPM
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}`)
}
});
گزینه 3: نسخه خالص جاوا اسکریپت را نصب کنید
ماژول tfjs
همان بسته ای است که در مرورگر استفاده می کنید. از نظر عملکرد کندترین گزینه Node.js است.
نصب tfjs
:
NPM
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}`)
}
});
TypeScript
اگر از TensorFlow.js در یک پروژه TypeScript استفاده میکنید و بررسی دقیق تهی را فعال کردهاید، ممکن است لازم باشد skipLibCheck: true
در tsconfig.json
خود تنظیم کنید تا از خطا در حین کامپایل جلوگیری کنید.