TensorFlow.js – это библиотека машинного обучения, разработанная командой TensorFlow, которая позволяет работать с моделями машинного обучения прямо в браузере или с использованием Node.js. В этой статье мы рассмотрим основные концепции и примеры кода для работы с TensorFlow.js.
Установка TensorFlow.js
Перед тем как начать работу с TensorFlow.js, необходимо установить его. Для установки TensorFlow.js в проекте можно использовать npm или включить его в HTML файл непосредственно с помощью тега script. Вот пример установки с использованием npm:
npm install @tensorflow/tfjs
Создание и обучение модели
Ниже приведен пример, который показывает, как создать простую модель с одним слоем и обучить ее на данных для предсказания простых чисел:
Импортируем необходимые модули TensorFlow.js
import * as tf from '@tensorflow/tfjs'
Создаем модель
const model = tf.sequential()
model.add(tf.layers.dense({ units: 1, inputShape: [1] }))
Компилируем модель
model.compile({ loss: 'meanSquaredError', optimizer: 'sgd' })
Генерируем данные для обучения и тестирования
const xs = tf.tensor2d([[1], [2], [3], [4]], [4, 1])
const ys = tf.tensor2d([[2], [4], [6], [8]], [4, 1])
Обучаем модель
model.fit(xs, ys, { epochs: 10 }).then(() => {
Тестируем модель
const result = model.predict(tf.tensor2d([[5]], [1, 1]))
result.print()
})
Этот пример иллюстрирует основные шаги создания и обучения модели с использованием TensorFlow.js. Первым делом мы создаем модель с помощью функции sequential(), затем добавляем слой с помощью метода add(). После компиляции модели с определенными функцией потерь и оптимизатором, мы генерируем данные для обучения и тестирования. В конце мы обучаем модель на данных и делаем предсказание на новых данных.
Использование предварительно обученной модели
TensorFlow.js также предоставляет возможность использования предварительно обученных моделей, что является полезным для различных задач машинного обучения. Вот пример кода, демонстрирующий использование предварительно обученной модели MobileNet для классификации изображений:
Импортируем модель MobileNet
import * as mobilenet from '@tensorflow-models/mobilenet'
Загружаем модель MobileNet
const model = await mobilenet.load()
Загружаем изображение для классификации
const image = document.getElementById('my-image');
Классифицируем изображение
const predictions = await model.classify(image)
console.log('Predictions:', predictions)
В этом примере мы используем модель MobileNet, предварительно обученную на большом наборе данных. После загрузки модели, мы передаем изображение для классификации и получаем предсказания. Затем мы выводим предсказания в консоль.
Искусственный интеллект на пятачке с помощью библиотеки Brain.js
Brain.js – это библиотека машинного обучения на JavaScript, которая предоставляет инструменты для создания нейронных сетей. Она основана на обратном распространении ошибки и позволяет разрабатывать различные типы нейронных сетей, такие как обучение с учителем (нейронные сети прямого распространения), обучение без учителя и Reinforcement Learning.
const brain = require('brain.js')
Создаем экземпляр нейронной сети
const net = new brain.NeuralNetwork()
Обучающие данные - данные о покупках и цене
const trainingData = [
{ input: { apples: 3, oranges: 1, bananas: 2 }, output: { price: 0.7 } },
{ input: { apples: 2, oranges: 0, bananas: 1 }, output: { price: 0.5 } },
{ input: { apples: 0, oranges: 2, bananas: 1 }, output: { price: 0.6 } },
{ input: { apples: 1, oranges: 1, bananas: 0 }, output: { price: 0.4 } },
]
Обучение нейронной сети на основе данных
net.train(trainingData)
Пример предсказания цены для набора данных
const inputData = { apples: 2, oranges: 1, bananas: 1 }
const outputData = net.run(inputData)
Вывод ожидаемой цены
console.log(outputData.price)
В этом примере мы создаем нейронную сеть и обучаем ее с помощью данных о покупках и цене продуктов. Затем мы используем обученную нейронную сеть для предсказания цены для нового набора данных.
Классификация изображений с помощью нейронной сети и Brain.js
const brain = require('brain.js')
Создаем экземпляр нейронной сети
const net = new brain.NeuralNetwork()
Обучающие данные - данные о изображениях и их классификации
const trainingData = [
{ input: [0, 0], output: [0] },
{ input: [0, 1], output: [1] },
{ input: [1, 0], output: [1] },
{ input: [1, 1], output: [0] },
]
Обучение нейронной сети на основе данных
net.train(trainingData)
Пример классификации нового изображения
const inputData = [0, 1]
const outputData = net.run(inputData)
Вывод предсказанной классификации
console.log(outputData)
В этом примере мы обучаем нейронную сеть на основе набора данных с двумя входными параметрами и одним выходным параметром. Затем мы используем нашу обученную нейронную сеть для классификации каждого нового изображения.