Google выпустила TensorFlow 1.0

0
11


TensorFlow 1.0 с моделью нейросети нового поколения Inception поддерживает аппаратное ускорение на DSP Hexagon в мобильных процессорах Qualcomm Snapdradon 820. Скорость работы приложений вроде Prism и программ машинного зрения увеличится в 8 и более раз, а энергопотребление снизится в 4 раза. Фильтры от нейросетей можно будет накладывать на видео почти в реальном времени

На первой конференции для разработчиков TensorFlow Dev Summit компания Google объявила о выходе мажорного релиза библиотеки TensorFlow 1.0, обратно несовместимого с предыдущими версиями. Это значит, что программы, работавшие на версиях TensorFlow 0.n, могут не работать на версии TensorFlow 1.0. Разработчики из Google говорят, что изменения в API были необходимы «для обеспечения внутренне согласованных программных интерфейсов», и больше такого не повторится: ломающих обратную совместимость изменений в будущих версиях 1.x не планируется. Сейчас разработчикам рекомендуется изучить руководство по миграции и использовать скрипт для преобразования.

TensorFlow — свободная программная библиотека для машинного обучения в применении к различным видам задач на восприятие и понимание языка. В данный момент она используется в научно-исследовательской работе и в десятках коммерческих продуктов Google, в том числе в Google Search, Gmail, Photos, Youtube, Translate, Assistant, а так же всевозможных системах распознавания, в том числе распознавания речи.

Другие нововведения с выпуском TensorFlow 1.0:

  • Интерфейсы Python API изменились для большего сходства с NumPy. Это одно из тех изменений, с которыми связана ломка обратной совместимости.
  • Экспериментальные интерфейсы для Java и Go.
  • Высокоуровневые модули программных интерфейсов tf.layers, tf.metrics и tf.losses поверх tf.contrib.learn после объединения со skflow и TF Slim.
  • Экспериментальный релиз XLA, проблемно-зависимого компилятора для графов TensorFlow, работающего для CPU и GPU. Этот компилятор быстро развивается, так что скоро можно ожидать новых релизов.
  • Появление дебаггера TensorFlow (tfdbg) с интерфейсом командной строки и API для дебаггинга работающих программ TensorFlow.
  • Новые демо для Android с примерами Android-приложений, использующих TensorFlow.
  • Улучшения в процедуре установки: добавлены docker-образы Python 3, а pip-пакеты TensorFlow теперь совместимы с PyPI, то есть TensorFlow сейчас устанавливается простой командой pip install tensorflow.

Теперь фреймворк для машинного обучения TensorFlow выходит на новый уровень: он официально готов к использованию в производстве. Google заявила, что программные интерфейсы теперь «больше, чем когда-либо» имеют статус "production-ready".


Использование нейросети в Gmail для составления автоматического краткого ответа на письмо с анализом контекста (текста входящего письма, на которое нужно составить ответ)

Изначально библиотека TensorFlow разработана специалистами научно-исследовательского подразделения Google Brain для внутренних нужд компании, но в ноябре 2015 года её выпустили под свободной лицензией Apache 2.0. Непосредственным предшественником TensorFlow в компании Google была система DistBelief — проприетарная система первого поколения. Позже над рефакторингом и упрощением кодовой базы DistBelief работали известные специалисты, в том числе Джефф Дин и Джеффри Хинтон. Им поставили задачу подготовить более быструю и надёжную библиотеку, готовую для использования во многих реальных приложениях. Результатом этой работы стала TensorFlow.

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

Эталонная реализация TensorFlow от компании Google работает на CPU и GPU. На графических процессорах видеокарт возможны расчёты в приложениях для общих вычислений с помощью дополнительного расширения CUDA для GPGPU. TensorFlow работает на 64-битных серверах и настольных компьютерах Linux, Windows и Mac OS X, а также на мобильных платформах, в том числе Android и iOS.

Вычисления TensorFlow выражаются как графы потоков данных с сохранением состояния (stateful). Библиотека алгоритмов от Google инструктирует нейронные сети воспринимать информацию и рассуждать подобно человеку, так что новые приложения изначально обладают такими «человеческими» качествами. Само название TensorFlow происходит от названия операций, которые эти нейросети осуществляют над многомерными массивами данных. Эти многомерные массивы именуются «тензорами», как одноимённые математические объекты, линейно преобразующие элементы одного линейного пространства в элементы другого. Задача TensorFlow — учить нейросети обнаруживать и распознавать паттерны и корреляции в массивах данных.

Визуализация многомерного пространства и техники t-SNE для нелинейного снижения размерности и визуализации многомерных переменных (t-distributed stochastic neighbor embedding)

С такими исходными данными неудивительно, что открытая библиотека TensorFlow быстро стала стандартом де-факто в машинном обучении, судя по статистике Github.

Всё самое интересное в машинном обучении только начинается. Скоро Google обещает выложить в открытый доступ новую модель архитектуры нейросети Inception. Эта революционная разработка многократно ускорит работу TensorFlow.

А ещё TensorFlow теперь поддерживает аппаратное ускорение на цифровом сигнальном процессоре Hexagon. Этот DSP — часть системы на кристалле Qualcomm Snapdradon 820, которой оснащаются современные топовые смартфоны.

Вместе с Java API, дебаггером и другими инструментами библиотека TensorFlow 1.0 действительно превращается в мощную продвинутую платформу для разработки современного ПО.

Источник