В этом документе показано, как установить и использовать TensorFlow.js в среде браузера и в Node.js.
Настройка браузера
Существует два рекомендуемых способа использования TensorFlow.js в браузерном проекте:
Используйте тег сценария .
Установите из NPM и используйте инструмент сборки, такой как Parcel , webpack или Rollup .
Если вы новичок в веб-разработке или раньше не использовали инструменты сборки 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>
Чтобы запустить пример, выполните следующие действия:
- Сохраните пример документа в файле
index.html
. Дважды щелкните
index.html
, чтобы открыть его в браузере по умолчанию.Альтернативно вы можете обслуживать
index.html
, запустивnpx http-server
в том же каталоге, что иindex.html
. (Если вам будет предложено получить разрешение на установкуhttp-server
, введитеy
.) Затем перейдите по адресуhttp://localhost:8080
в своем браузере.Откройте консоль браузера, чтобы увидеть вывод скрипта.
Обновите страницу, чтобы увидеть новое (и, скорее всего, другое) предсказание.
Установить из НПМ
Чтобы установить 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
чтобы избежать ошибок во время компиляции.