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