Омри Гроссман

TensorFlow.js (или, короче, tfjs) - это библиотека, которая позволяет создавать, обучать и использовать обученные модели машинного обучения на Javascript!

Основное внимание уделяется тому, чтобы позволить разработчикам Javascript войти в мир машинного обучения и глубокого обучения, создав классные и интеллектуальные веб-приложения, которые могут работать в любом крупном браузере или на серверах Node.js с использованием Javascript.

Введение

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

Прочитав это сообщение, вы:

  • Узнайте о TensorFlow.js и способах его использования.
  • Узнайте, как загрузить модели машинного обучения в свой проект Javascript и начать его использовать.
  • Получите навыки создания такого проекта самостоятельно
  • И, наконец, получите больше знаний о машинном обучении.

Итак, как это работает?

Есть несколько вариантов, из которых мы можем выбрать:

1. Запустите существующие модели:

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

В дополнение к этому вы можете найти множество привлекательных предварительно обученных моделей, разработанных сообществом TensorFlow.js по всему Интернету.

2. Переобучить существующие модели:

Эта опция позволяет нам улучшить существующую модель для нашего конкретного случая использования. Мы можем добиться этого, используя метод под названием: Transfer Learning.

Трансферное обучение - это улучшение обучения в новой задаче путем передачи знаний из связанной задачи, которая уже была изучена.

Например, в реальном мире логика балансировки, изученная во время езды на велосипеде, может быть передана для обучения вождению других двухколесных транспортных средств. Точно так же в машинном обучении трансферное обучение может использоваться для передачи алгоритмической логики от одной модели машинного обучения к другой.

3. Разработка машинного обучения с помощью JavaScript:

Третий вариант будет использоваться в ситуациях, когда разработчик хочет создать новую модель машинного обучения с нуля, используя TensorFlow.js API, как и обычную версию TensorFlow.

А теперь займемся машинным обучением с помощью Javascript.

В этой статье мы в первую очередь сосредоточимся на добавлении и запуске предварительно обученной модели машинного обучения в проект Javascript. Вы увидите, насколько легко установить, загрузить и запустить прогнозы в модели машинного обучения.

Итак, приступим!

Я создал приложение, которое демонстрирует использование предварительно обученной модели классификации тегов изображений, созданной командой Tensorflow.js. Модель называется MobileNet, подробнее о ней можно узнать здесь: MobileNet.

Демонстрационное приложение построено с использованием React.js и Ant Design для компонентов пользовательского интерфейса.

React - это интерфейсная библиотека JavaScript с открытым исходным кодом для создания пользовательских интерфейсов или компонентов пользовательского интерфейса.

Давайте вместе рассмотрим основные части приложения:

Во-первых, зависимости

После того, как мы настроим наше приложение React, нам нужно будет установить tfjs и модель классификации изображений - mobilenet, выполнив следующие команды:

$ npm i @tensorflow-models/mobilenet
$ npm i @tensorflow/tfjs

Теперь, после того как мы установили пакеты, мы можем импортировать их в наш файл `App.js`:

Мы импортировали модель классификации изображений и движок TensorFlow.js, который запускает модели машинного обучения в фоновом режиме каждый раз, когда мы вызываем модель.

Далее нам нужно загрузить модель в наш компонент для использования в будущем. Обратите внимание, что функция model.load () является асинхронной функцией, поэтому нам нужно дождаться ее завершения.

В модели mobileNet есть метод, называемый classify, после того, как мы загрузили модель, мы можем вызвать этот метод :

Этот метод принимает 2 аргумента:

  1. img: тензор или элемент изображения, по которому выполняется классификация.
  2. topk: сколько из наивысших вероятностей будет возвращено. По умолчанию 3.

На следующем этапе мы хотим прочитать изображение, вводимое пользователем, и загрузить загруженный файл в элемент холста типа HTMLCanvasElement

После того, как изображение загружено на холст, мы можем запустить метод классификации.

Результатом метода model.classify является массив классифицированных меток и их оценка прогноза. Результат выглядит так:

Как только мы сохранили массив предсказаний в нашем компоненте, мы можем перебрать массив и отобразить их на экране:

(я решил отображать только значимые вероятности выше 0,000)

Итак, у нас есть живая модель машинного обучения в нашем браузере, поздравляем!

Перейдите по этим ссылкам для:

Вы можете загружать свои собственные изображения, делать прогнозы и даже быть более креативными и пытаться добавлять новые функции :)

Заключение

Нет сомнений в том, что использование машинного обучения постоянно увеличивается. Поскольку разработка Javascript становится все более популярной, сообщество TensorFlow.js будет расти и становиться все более мощным. Я думаю, что мы увидим все больше и больше приложений производственного уровня, использующих TensorFlow.js в браузере или на серверах Node.js для простых и легких задач, которые могут решать модели машинного обучения.

После того, как вы все увидели, насколько быстро и легко интегрировать TensorFlow.js в приложение Javascript, я предлагаю вам попробовать его самостоятельно, создать несколько интересных проектов и поделиться ими со всеми.

Alibaba Tech

Подробная информация о последних технологиях Alibaba из первых рук → Facebook: Alibaba Tech. Twitter: « AlibabaTech ».