Настройте проект TensorFlow.js

В этом документе показано, как установить и использовать TensorFlow.js в среде браузера и в Node.js.

Настройка браузера

Существует два рекомендуемых способа использования TensorFlow.js в браузерном проекте:

Если вы новичок в веб-разработке или раньше не использовали инструменты сборки JavaScript, возможно, вам стоит сначала попробовать подход с использованием тегов скриптов. Если вы обычно объединяете или обрабатываете свои веб-ресурсы или планируете писать более крупные приложения, вам следует рассмотреть возможность использования инструментов сборки.

Используйте тег сценария

Чтобы получить 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 , чтобы открыть его в браузере по умолчанию.

    В качестве альтернативы вы можете обслуживать index.html , запустив npx http-server в том же каталоге, что и index.html . (Если вам будет предложено получить разрешение на установку http-server , введите y .) Затем перейдите по адресу http://localhost:8080 в своем браузере.

  3. Откройте консоль браузера, чтобы увидеть вывод скрипта.

  4. Обновите страницу, чтобы увидеть новое (и, скорее всего, другое) предсказание.

Установить из НПМ

Чтобы установить TensorFlow.js из NPM, используйте интерфейс командной строки npm или 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 или пряжу , чтобы выполнить один из вариантов установки, указанных ниже.

Чтобы узнать больше об использовании TensorFlow.js в Node.js, смотрите руководство Node.js. Дополнительную информацию по установке см. в репозитории TensorFlow.js для Node.js.

Вариант 1. Установите TensorFlow.js с собственными привязками C++.

Модуль tfjs-node обеспечивает собственное выполнение TensorFlow в приложениях JavaScript в среде выполнения 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}`)
  }
});

Вариант 2. Установите TensorFlow.js для графического процессора.

(Только для Linux) Если в вашей системе установлен графический процессор NVIDIA® с поддержкой CUDA , вы можете использовать пакет графического процессора для повышения производительности.

Установите 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}`)
  }
});

Вариант 3. Установите чистую версию JavaScript.

Модуль 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 и у вас включена строгая проверка нулевых значений, вам может потребоваться установить skipLibCheck: true в вашем tsconfig.json чтобы избежать ошибок во время компиляции.