Начните работу с TensorFlow.js

TensorFlow.js — это библиотека JavaScript для обучения и развертывания моделей машинного обучения в веб-браузере и в Node.js. В этом руководстве показано, как начать работу с TensorFlow.js, обучив минимальную модель в браузере и используя ее для прогнозирования.

Код примера доступен на GitHub .

Предварительные условия

Для работы с этим руководством в вашей среде разработки необходимо установить следующее:

Установите пример

Получите исходный код и установите зависимости:

  1. Клонируйте или загрузите репозиторий tfjs-examples .
  2. Перейдите в каталог getting-started : cd tfjs-examples/getting-started .
  3. Установите зависимости: yarn install .

Если вы посмотрите на файл package.json , вы можете заметить, что TensorFlow.js не является зависимостью. Это связано с тем, что пример загружает TensorFlow.js из CDN. Вот полный HTML-код из index.html :

<html>
  <head>
    <script src="https://cdn.jsdelivr.net/npm/@tensorflow/tfjs@latest"> </script>
  </head>
  <body>
    <h4>Tiny TFJS example<hr/></h4>
    <div id="micro-out-div">Training...</div>
    <script src="./index.js"> </script>
  </body>
</html>

Элемент <script> в заголовке загружает библиотеку TensorFlow.js, а элемент <script> в конце тела загружает скрипт машинного обучения.

Другие способы получения зависимости от TensorFlow.js смотрите в руководстве по настройке .

Запустите пример

Запустите пример и посмотрите результаты:

  1. В каталоге tfjs-examples/getting-started запустите yarn watch .
  2. Перейдите по адресу http://127.0.0.1:1234 в браузере.

Вы должны увидеть заголовок страницы и номер, например 38.31612014770508 . Точное число может варьироваться, но оно должно быть близко к 39.

Что только что произошло?

Когда index.js загружается, он обучает модель tf.sequential используя значения $x$ и $y$, удовлетворяющие уравнению $y = 2x-1$.

// Create a simple model.
const model = tf.sequential();
model.add(tf.layers.dense({units: 1, inputShape: [1]}));

// Prepare the model for training: Specify the loss and the optimizer.
model.compile({loss: 'meanSquaredError', optimizer: 'sgd'});

// Generate some synthetic data for training. (y = 2x - 1)
const xs = tf.tensor2d([-1, 0, 1, 2, 3, 4], [6, 1]);
const ys = tf.tensor2d([-3, -1, 1, 3, 5, 7], [6, 1]);

// Train the model using the data.
await model.fit(xs, ys, {epochs: 250});

Затем он прогнозирует значение $y$ для невидимого значения $x$ 20 и обновляет DOM для отображения предсказания.

// Use the model to do inference on a data point the model hasn't seen.
// Should print approximately 39.
document.getElementById('micro-out-div').innerText =
    model.predict(tf.tensor2d([20], [1, 1])).dataSync();

Результат $2*20 — 1$ равен 39, поэтому прогнозируемое значение $y$ должно быть примерно 39.

Что дальше

В этом руководстве представлен минимальный пример использования TensorFlow.js для обучения модели в браузере. Более глубокое введение в модели обучения с помощью JavaScript см. в руководстве по TensorFlow.js.

Дополнительные способы начать работу

Вот еще несколько способов начать работу с TensorFlow.js и веб-ML.

Посмотрите курс веб-ML по TensorFlow.js

Если вы веб-разработчик и ищете практическое введение в веб-ML, посмотрите видеокурс Google Developers «Машинное обучение для веб-разработчиков». Курс покажет вам, как использовать TensorFlow.js на ваших веб-сайтах и ​​в приложениях.

Перейти на курс веб-ML

Пишите программы ML, не работая напрямую с тензорами.

Если вы хотите начать работу с машинным обучением, не управляя оптимизаторами и не манипулируя тензорами, воспользуйтесь библиотекой ml5.js.

Библиотека ml5.js, созданная на основе TensorFlow.js, обеспечивает доступ к алгоритмам и моделям машинного обучения в веб-браузере с помощью лаконичного и доступного API.

Ознакомьтесь с ml5.js

Установите TensorFlow.js

Узнайте, как установить TensorFlow.js для реализации в веб-браузере или Node.js.

Установите TensorFlow.js

Преобразование предварительно обученных моделей в TensorFlow.js

Узнайте, как конвертировать предварительно обученные модели из Python в TensorFlow.js.

Модель Keras Модель GraphDef

Изучите существующий код TensorFlow.js.

Репозиторий tfjs-examples предоставляет небольшие примеры реализации различных задач машинного обучения с использованием TensorFlow.js.

Посмотреть примеры tfjs на GitHub

Визуализируйте поведение вашей модели TensorFlow.js.

tfjs-vis — небольшая библиотека для визуализации в веб-браузере, предназначенная для использования с TensorFlow.js.

Посмотреть tfjs-vis на GitHub Посмотреть демо

Подготовьте данные для обработки с помощью TensorFlow.js

TensorFlow.js поддерживает обработку данных с использованием лучших практик машинного обучения.

Посмотреть документацию