Введение
В этом уроке мы узнаем о:
- Что такое TensorFlow.js?
- Простой учебник по модели линейной регрессии
Что такое TensorFlow.js?
TensorFlow.js — это библиотека JavaScript для обучения и развертывания моделей машинного обучения в Node.js и браузере. Он позволяет использовать функциональные возможности TensorFlow из JavaScript, упрощая создание и развертывание приложений машинного обучения в веб-браузере или на сервере.
Простой учебник по модели линейной регрессии
Вот простое руководство, демонстрирующее, как использовать TensorFlow.js для построения простой модели линейной регрессии:
- Первый шаг, нам нужно установить 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());