Представляем TensorFlow.js: Машинное обучение в Javascript

Мы рады представить TensorFlow.js, библиотеку с открытым исходным кодом, которую вы можете использовать для определения, обучения и запуска моделей машинного обучения целиком в браузере с использованием Javascript и API-интерфейса слоев высокого уровня. Если вы девелопер Javascript, но еще пока новичок в ML, TensorFlow.js - отличный способ начать обучение. Или если вы девелопер ML, но новичок Javascript, - читайте дальше, чтобы узнать больше о новых возможностях ML в браузере. В этой статье мы дадим вам краткий обзор TensorFlow.js и начальные ресурсы, которые вы можете использовать, чтобы его опробовать.

Браузерный Machine Learning

Запуск программ машинного обучения со стороны клиента в браузере открывает новые возможности, такие как интерактивный ML! Если вы смотрите трансляцию для разработчиков саммита TensorFlow, то вы увидите демонстрационный пример, где @dsmilkov и @nsthorat учат модель управлять игрой PAC-MAN, используя компьютерное зрение и веб-камеру прямо в браузере. Вы также можете попробовать это самостоятельно по ссылке ниже - и найти источник в папке примеров

Превратите вашу веб-камеру в контроллер для PAC-MAN с помощью нейронной сети.

Если хотите испытать другую игру, попробуйте Emoji Scavenger Hunt - на этот раз из браузера на вашем мобильном телефоне. 

Emoji Scavenger Hunt является еще одним веселым примером приложения, построенного с использованием TensorFlow.js. Попробуйте на своем телефоне. Источник ищите здесь.

 

Запуск ML в браузере означает, что с точки зрения пользователя нет необходимости устанавливать какие-либо библиотеки или драйверы. Просто откройте веб-страницу, и ваша программа готова к запуску. Кроме того, она готова к работе с ускорением GPU. TensorFlow.js автоматически поддерживает WebGL и ускорит ваш код сразу, как появится графический процессор. Пользователи также могут открывать вашу веб-страницу с мобильного устройства, и в этом случае ваша модель может использовать данные датчиков, например, с гироскопа или акселерометра. Важно еще и то, что все данные остаются у клиента, что делает TensorFlow.js полезным для low-latency вывода, а также для приложений, сохраняющих конфиденциальность.

Что вы можете сделать с TensorFlow.js?

Если вы работаете с TensorFlow.js, ниже представлены три рабочих процесса, которые вы можете рассмотреть.

  • Вы можете импортировать существующую, предварительно обученную модель для вывода. Если у вас есть существующая модель TensorFlow или Keras, которую вы ранее обучали в автономном режиме, вы можете преобразовать ее в формат TensorFlow.js и загрузить ее в браузер для вывода.
  • Вы можете переподготовить импортированную модель. Как и в демонстрационной версии Pac-Man выше, вы можете использовать трансферное обучение, чтобы дополнить существующую модель, обученную в автономном режиме, используя небольшой объем данных, собранных в браузере, с использованием метода, называемого Image Retraining. Это один из способов быстрого обучения точной модели, используя только небольшой объем данных.
  • Создавать модели прямо в браузере. Вы также можете использовать TensorFlow.js, чтобы полностью определять, обучать и запускать модели в браузере с использованием Javascript и API-интерфейса слоев высокого уровня. Если вы знакомы с Keras, API-интерфейс слоев высокого уровня должен быть вам знакомым.

Посмотрим на код 

Если хотите, можете обратиться прямо к примерам или учебным пособиям для того, чтобы начать. Они показывают, как экспортировать модель, определенную в Python, для вывода в браузере, а также как полностью определять и обучать модели в Javascript. В качестве быстрого предварительного просмотра приведен фрагмент кода, который определяет нейронную сеть для классификации цветов, как в руководстве по началу работы на TensorFlow.org. Здесь мы определим модель, используя стек слоев.

import * as tf from ‘@tensorflow/tfjs’;
const model = tf.sequential();
model.add(tf.layers.dense({inputShape: [4], units: 100}));
model.add(tf.layers.dense({units: 4}));
model.compile({loss: ‘categoricalCrossentropy’, optimizer: ‘sgd’});

Используемый здесь API-интерфейс слоев поддерживает все слои Keras, находящиеся в каталоге примеров (включая Dense, CNN, LSTM и т.д.). Затем мы можем обучить нашу модель, используя тот же Keras-совместимый API с вызовом метода:

await model.fit(
  xData, yData, {
  batchSize: batchSize,
epochs: epochs
});

Теперь модель готова к использованию для прогнозирования:

// Get measurements for a new flower to generate a prediction
// The first argument is the data, and the second is the shape.
const inputData = tf.tensor2d([[4.8, 3.0, 1.4, 0.1]], [1, 4]);

// Get the highest confidence prediction from our model
const result = model.predict(inputData);
const winner = irisClasses[result.argMax().dataSync()[0]];

// Display the winner
console.log(winner);

TensorFlow.js также включает низкоуровневый API (ранее deeplearn.js) и поддержку Eager execution. Вы можете узнать больше об этом, посмотрев доклад на саммите разработчиков TensorFlow.

Обзор API TensorFlow.js. TensorFlow.js работает на основе WebGL и предоставляет высокоуровневый API для определения моделей и низкоуровневый API для линейной алгебры и автоматического дифференцирования. Tensor Flow.js поддерживает импорт моделей TensorFlow SavedModels и Keras. 

Как TensorFlow.js связан с deeplearn.js?

Хороший вопрос! TensorFlow.js, экосистема инструментов JavaScript для машинного обучения, является преемником deeplearn.js, который теперь называется TensorFlow.js Core. TensorFlow.js также включает в себя Layers API, которые являются библиотекой более высокого уровня для построения моделей машинного обучения с использованием Core, также как инструменты для автоматического переноса моделей TensorFlow SavedModels и Keras hdf5.

Где можно узнать больше?

Чтобы узнать больше о TensorFlow.js, посетите домашнюю страницу проекта, ознакомьтесь с руководством и рассмотрите примеры. Вы также можете посмотреть выступление на саммите разработчиков TensorFlow в 2018 году и следить за TensorFlow в Twitter.

Источник

Поделиться записью
Вверх