Компания Google представила (https://developers.googleblog.com/2017/02/announcing-tensorf... первый стабильный выпуск платформы машинного обучения TensorFlow (http://tensorflow.org/), предоставляющей готовые реализации различных алгоритмов глубокого машинного обучения. Предоставляется простой программный интерфейс для построения моделей на языке Python и низкоуровневый интерфейс для языка С++, позволяющий управлять построением и выполнением вычислительных графов. Код системы написан на языках С++ и Python и распространяется (https://github.com/tensorflow/tensorflow) под лицензией Apache.
Платформа развивается командой Google Brain и используются в сервисах Google для распознавания речи, выделения лиц на фотографиях, определение схожести изображений, отсеивание спама в Gmail и организации перевода с учётом смысла. С момента открытия кода платформа также была задействована в нескольких независимых исследовательских проектах, например, на основе TensorFlow созданы мобильные приложения для определение рака кожи и профилактики слепоты у больных сахарным диабетом.
TensorFlow предоставляет библиотеку готовых алгоритмов численных вычислений, реализованных через графы потоков данных (data flow graphs). Узлы в таких графах реализуют математические операции или точки входа/вывода, в то время как рёбра графа представляют многомерные массивы данных (тензоры), которые перетекают между узлами. Узлы могут быть закреплены за вычислительными устройствами и выполняться асинхронно, параллельно обрабатывая разом все подходящие к ним тезоры, что позволяет организовать одновременную работу узлов в нейронной сети по аналогии с одновременной активацией нейронов в мозге. Распределённые системы машинного обучения можно создавать на типовом оборудовании, благодаря встроенной поддержке в TensorFlow разнесения вычислений на несколько CPU или GPU.
Версия TensorFlow 1.0 примечательна стабилизацией API для языка Python, который в дальнейшем будет меняться только с сохранением обратной совместимости, а также добавлением экспериментальных API для языков Java (https://github.com/tensorflow/tensorflow/tree/master/tensorf... и Go (https://github.com/tensorflow/tensorflow/tree/master/tensorf.... Среди других улучшений:
- Подготовлен выскопроизводительный предметно-ориентированный компилятор XLA (https://www.tensorflow.org/performance/xla) (Accelerated Linear Algebra) для ускорения операций линейной алгебры. Компилятор поддерживает как режим компиляции на лету (JIT), так и классическую предварительную компиляцию (AOT). Применение XLA позволяет значительно ускорить работу алгоритмов TensorFlow и сократить потребление памяти, сохранив при этом возможность использования как на обычных серверных и мобильных платформах, так и на системах со специализированными аппаратными ускорителями. Например, использование XLA позволяет ускорить обучение модели Inception v3 в 7.3 раза на системе с 8 GPU и в 58 раз в кластере из 64 GPU;
- Из tf.contrib.learn (https://www.tensorflow.org/get_started/tflearn) в основной состав перенесён набор модулей (tf.layers, tf.metrics и tf.losses) c реализацией высокоуровневых API, упрощающих задействование средств машинного обучения в своих проектах.
- Добавлен новый модуль tf.keras, обеспечивающий полную интеграцию с библиотекой построения нейронных сетей Keras (https://keras.io/).
- API для языка Python переработан (https://tensorflow.org/install/migration) для большей схожести с API NumPy (для автоматической адаптации кода проектов к изменениям в API подготовлен скрипт (https://github.com/tensorflow/tensorflow/tree/r1.0/tensorflo...
- Добавлен отладчик tfdbg (https://www.tensorflow.org/programmers_guide/debugger), предоставляющий API и интерфейс командной строки для отладки приложений на базе TensorFlow во время их работы;
- Подготовлен (https://github.com/tensorflow/tensorflow/tree/r1.0/tensorflo... новый набор демонстрационных приложений для платформы Android с примерами реализации таких функций как определение объектов на изображении и корректировка картинки со встроенной камеры;
- Для упрощения установки сформированы готовые Docker-образы и pip-пакеты, совместимые с PyPI (для установки TensorFlow теперь достаточно выполнить команду "pip install tensorflow").
Дополнительно можно отметить продолжение компанией Facebook публикации наработок по распознаванию объектов на фотографиях. Следом за реализацией (https://www.opennet.dev/opennews/art.shtml?num=45028) алгоритмов DeepMask и SharpMask открыт код фреймворка ResNeXt (https://github.com/facebookresearch/ResNeXt) с реализацией
простой и модульной архитектуры классификации изображений и определения объектов на фотографиях, основанной на алгоритмах, изложенных в публикации "Aggregated Residual Transformations for Deep Neural Networks (https://arxiv.org/abs/1611.05431)". Код написан на языке Lua в виде модуля к библиотеке глубинного машинного обучения Torch (http://torch.ch/) и распространяется (https://github.com/facebookresearch/ResNeXt) под лицензией BSD. В дополнение к коду для загрузки под лицензией CC BY-NC 4.0 предлагается несколько готовых натренированных моделей нейронной сети для ResNeXt.
URL: https://developers.googleblog.com/2017/02/announcing-tensorf...
Новость: http://www.opennet.dev/opennews/art.shtml?num=46058