یک پروژه TensorFlow.js راه اندازی کنید

این سند به شما نشان می دهد که چگونه TensorFlow.js را در محیط مرورگر و در Node.js نصب و استفاده کنید.

راه اندازی مرورگر

دو روش پیشنهادی برای استفاده از TensorFlow.js در یک پروژه مبتنی بر مرورگر وجود دارد:

اگر در توسعه وب تازه کار هستید یا قبلا از ابزارهای ساخت جاوا اسکریپت استفاده نکرده اید، ممکن است بخواهید ابتدا رویکرد تگ اسکریپت را امتحان کنید. اگر معمولا دارایی های وب خود را بسته بندی یا پردازش می کنید، یا قصد دارید برنامه های بزرگتری بنویسید، باید از ابزارهای ساخت استفاده کنید.

از یک تگ اسکریپت استفاده کنید

برای دریافت 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>

برای اجرای مثال، مراحل زیر را دنبال کنید:

  1. سند نمونه را در فایلی به نام index.html ذخیره کنید.
  2. روی index.html دوبار کلیک کنید تا در مرورگر پیش فرض خود باز شود.

    از طرف دیگر، می توانید با اجرای npx http-server در همان دایرکتوری index.html index.html ارائه دهید. (اگر مجوز نصب http-server از شما خواسته شد، y را وارد کنید.) سپس در مرورگر خود به http://localhost:8080 بروید.

  3. کنسول مرورگر را باز کنید تا خروجی اسکریپت را ببینید.

  4. برای مشاهده یک پیش بینی جدید (و احتمالاً متفاوت) صفحه را بازخوانی کنید.

از 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 خود تنظیم کنید تا از خطا در حین کامپایل جلوگیری کنید.