Введение

В этом уроке мы узнаем о:

  • Что такое TensorFlow.js?
  • Простой учебник по модели линейной регрессии

Что такое TensorFlow.js?

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

Простой учебник по модели линейной регрессии

Вот простое руководство, демонстрирующее, как использовать TensorFlow.js для построения простой модели линейной регрессии:

  1. Первый шаг, нам нужно установить TensorFlow.js и его зависимости, выполнив следующую команду в вашем терминале:
npm install @tensorflow/tfjs

2. Затем мы создадим новый файл JavaScript и импортируем библиотеку TensorFlow.js.

const tf = require('@tensorflow/tfjs');

3. Далее нам нужно предоставить некоторые обучающие данные. Это может быть любой набор числовых значений, которые вы хотите использовать для обучения модели. Для этого примера мы создали простой набор данных с двумя функциями (x1 и x2) и одной меткой (y):

const data = [
  {x1: 0, x2: 0, y: 0},
  {x1: 1, x2: 0, y: 1},
  {x1: 0, x2: 1, y: 1},
  {x1: 1, x2: 1, y: 0}
];

4. Теперь данные обучения должны быть преобразованы в тензоры. Тензор — это многомерный массив, который используется для представления данных в TensorFlow.js. Чтобы преобразовать данные в тензоры, мы будем использовать функцию tf.tensor2d:

const inputs = tf.tensor2d(data.map(item => [item.x1, item.x2]));
const labels = tf.tensor2d(data.map(item => [item.y]));

5. Вот самая интересная часть создания модели. В TensorFlow.js модель представляет собой набор слоев, определяющих структуру нейронной сети. Мы будем использовать простую линейную модель с одним слоем:

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

6. Итак, теперь мы можем скомпилировать нашу модель, но прежде нам нужно указать функцию потерь и оптимизатор, который будет использоваться для обучения модели. Мы будем использовать функцию потери среднеквадратичной ошибки и оптимизатор Stochastic Gradient Descent (SGD):

model.compile({loss: 'meanSquaredError', optimizer: 'sgd'});

7. Теперь у нас есть все необходимое для обучения модели на обучающих данных по мере компиляции модели. Мы будем использовать метод fit для обучения модели в течение заданного количества эпох:

await model.fit(inputs, labels, {epochs: 100});

8. По мере обучения модели мы можем использовать ее для прогнозирования. Для этого воспользуемся методом predict и передадим входные данные в виде тензора:

const output = model.predict(tf.tensor2d([[0, 1]]));
console.log(output.dataSync());