Выпуск системы машинного обучения TensorFlow 1.0 и классификатора изображений ResNeXt

Компания Google представила первый стабильный выпуск платформы машинного обучения TensorFlow, предоставляющей готовые реализации различных алгоритмов глубокого машинного обучения. Предоставляется простой программный интерфейс для построения моделей на языке Python и низкоуровневый интерфейс для языка С++, позволяющий управлять построением и выполнением вычислительных графов. Код системы написан на языках С++ и Python и распространяется под лицензией Apache.

Платформа развивается командой Google Brain и используются в сервисах Google для распознавания речи, выделения лиц на фотографиях, определение схожести изображений, отсеивание спама в Gmail и организации перевода с учётом смысла. С момента открытия кода платформа также была задействована в нескольких независимых исследовательских проектах, например, на основе TensorFlow созданы мобильные приложения для определение рака кожи и профилактики слепоты у больных сахарным диабетом.

TensorFlow предоставляет библиотеку готовых алгоритмов численных вычислений, реализованных через графы потоков данных (data flow graphs). Узлы в таких графах реализуют математические операции или точки входа/вывода, в то время как рёбра графа представляют многомерные массивы данных (тензоры), которые перетекают между узлами. Узлы могут быть закреплены за вычислительными устройствами и выполняться асинхронно, параллельно обрабатывая разом все подходящие к ним тезоры, что позволяет организовать одновременную работу узлов в нейронной сети по аналогии с одновременной активацией нейронов в мозге. Распределённые системы машинного обучения можно создавать на типовом оборудовании, благодаря встроенной поддержке в TensorFlow разнесения вычислений на несколько CPU или GPU.

Версия TensorFlow 1.0 примечательна стабилизацией API для языка Python, который в дальнейшем будет меняться только с сохранением обратной совместимости, а также добавлением экспериментальных API для языков Java и Go. Среди других улучшений:

  • Подготовлен выскопроизводительный предметно-ориентированный компилятор XLA (Accelerated Linear Algebra) для ускорения операций линейной алгебры. Компилятор поддерживает как режим компиляции на лету (JIT), так и классическую предварительную компиляцию (AOT). Применение XLA позволяет значительно ускорить работу алгоритмов TensorFlow и сократить потребление памяти, сохранив при этом возможность использования как на обычных серверных и мобильных платформах, так и на системах со специализированными аппаратными ускорителями. Например, использование XLA позволяет ускорить обучение модели Inception v3 в 7.3 раза на системе с 8 GPU и в 58 раз в кластере из 64 GPU;
  • Из tf.contrib.learn в основной состав перенесён набор модулей (tf.layers, tf.metrics и tf.losses) c реализацией высокоуровневых API, упрощающих задействование средств машинного обучения в своих проектах.
  • Добавлен новый модуль tf.keras, обеспечивающий полную интеграцию с библиотекой построения нейронных сетей Keras.
  • API для языка Python переработан для большей схожести с API NumPy (для автоматической адаптации кода проектов к изменениям в API подготовлен скрипт);
  • Добавлен отладчик tfdbg, предоставляющий API и интерфейс командной строки для отладки приложений на базе TensorFlow во время их работы;
  • Подготовлен новый набор демонстрационных приложений для платформы Android с примерами реализации таких функций как определение объектов на изображении и корректировка картинки со встроенной камеры;
  • Для упрощения установки сформированы готовые Docker-образы и pip-пакеты, совместимые с PyPI (для установки TensorFlow теперь достаточно выполнить команду «pip install tensorflow»).

Дополнительно можно отметить продолжение компанией Facebook публикации наработок по распознаванию объектов на фотографиях. Следом за реализацией алгоритмов DeepMask и SharpMask открыт код фреймворка ResNeXt с реализацией
простой и модульной архитектуры классификации изображений и определения объектов на фотографиях, основанной на алгоритмах, изложенных в публикации «Aggregated Residual Transformations for Deep Neural Networks«. Код написан на языке Lua в виде модуля к библиотеке глубинного машинного обучения Torch и распространяется под лицензией BSD. В дополнение к коду для загрузки под лицензией CC BY-NC 4.0 предлагается несколько готовых натренированных моделей нейронной сети для ResNeXt.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.