Введение в TensorFlow.js: Машинное обучение в Javascript

Введение в TensorFlow.js: Машинное обучение в Javascript

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

ML в браузере

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

1

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

2

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

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

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

  • Вы можете импортировать существующую, предварительно обученную модель для вывода. Если у вас есть существующая модель TensorFlow или Keras, которую вы ранее обучали в автономном режиме, вы можете преобразовать ее в формат TensorFlow.js и загрузить ее в браузер для вывода.

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

  • Создавайте модель прямо в браузере. Вы также можете использовать TensorFlow.js, чтобы полностью определять, обучать и запускать модели в браузере, используя Javascript и API-интерфейс слоев высокого уровня. Если вы знакомы с Keras, высокоуровневый API должно показаться вам знакомым.

Давайте немного покодим

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

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

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

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

3

TensorFlow.js работает на основе WebGL и предоставляет высокоуровневый API для определения моделей и низкоуровневый API для линейной алгебры и автоматического дифференцирования. TensorFlow.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. Для ответов на другие вопросы, подобные этим, зацените FAQ.

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

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

Спасибо за интерес, и нам инетерсно посмотреть, что вы создаете с TensorFlow.js! Если хотите, вы можете следить за обновлениями @dsmilkov, @nsthorat и @sqcai из команды TensorFlow.js в Twitter.

Присоединяйтесь к нашим каналам FrontEndDev и Web Stack в Telegram, чтобы не пропустить самое интересное!

Оригинал статьи - Introducing TensorFlow.js: Machine Learning in Javascript