TensorFlow умер. Да здравствует TensorFlow 2.0!

МЕНЮ


Искусственный интеллект
Поиск
Регистрация на сайте
Помощь проекту

ТЕМЫ


Новости ИИРазработка ИИВнедрение ИИРабота разума и сознаниеМодель мозгаРобототехника, БПЛАТрансгуманизмОбработка текстаТеория эволюцииДополненная реальностьЖелезоКиберугрозыНаучный мирИТ индустрияРазработка ПОТеория информацииМатематикаЦифровая экономика

Авторизация



RSS


RSS новости


Вышло долгожданное обновление фреймворка машинного обучения – TensorFlow 2.0. Что же предлагают разработчики Google в альфа-версии?

TensorFlow умер. Да здравствует TensorFlow 2.0!

Вы новичок в TensorFlow? Поздравляем! Вы выбрали лучшее время, чтобы погрузиться в тематику искусственного интеллекта ?

Основное преимущество TensorFlow – производительность. Этот инструмент создан для массового переноса моделей с уровня исследований в производство и фактически является промышленным станком для ИИ… но примерно таким же понятным для незнакомого с ним пользователя. Низкоуровневый TensorFlow 1.x труден для изучения и заставляет попотеть желающих открывать планеты или развивать медицину.

Так что многие исследователи ограничивались Keras – высокоуровневым API для построения моделей глубокого обучения слой-за-слоем. Keras создан с нуля на Python. Он гибок и прост, оптимизирован под распространенные задачи глубокого обучения. Плюс он работает с несколькими фреймворками машинного обучения, не только с TensorFlow.

А зачем выбирать между привлекательной удобностью Keras и мощным исполнением традиционного TensorFlow? Действительно, незачем! Эта идея и лежит в основе стратегии TensorFlow 2.0.

TensorFlow умер. Да здравствует TensorFlow 2.0!

Теперь Keras превратился в высокоуровневый API, встроенный в TensorFlow 2.0 по умолчанию в виде tf.keras. Его функционал богаче в сравнении со стандартным интерфейсом и позволяет «дотянуться» до продвинутых функций TensorFlow. С основными особенностями tf.keras можно ознакомиться в русскоязычной документации.

Разработчики Google отказались от всего, что вы могли невзлюбить в TensorFlow 1.x. Магический ритуал, чтобы просто сложить два числа? Забудьте. Сессии TensorFlow? Почили в бозе. Переписывание кода для нового железа или масштабирования? Никогда более. Ужасные сообщения об ошибках? Устранено.

TensorFlow 2.0 – это приятный, меняющий правила игры фреймворк, не только мощный, но и удобный.

В TensorFlow 2.0 по умолчанию в качестве режима выполнения моделей используется Eager execution. То есть вычисление конкретных значений происходит по ходу выполнения, до построения полного вычислительного графа. Это упрощает отладку моделей и устраняет необходимость в шаблонном коде.

В качестве структур данных теперь можно использовать стандартные структуры Python. Вы можете быстро проверять гипотезы и легко отлаживать код на небольших моделях и малом количестве данных. Eager execution также поддерживает ускорение на GPU и распределенные вычисления на множестве машин.

TensorFlow 2.0 облегчает внедрение предобученных моделей, «заточенных» под распознавание изображений и речи, обнаружение объектов, рекомендации, обучение с подкреплением и т. д. Такие reference models позволяют «из коробки» применять лучшие практики и служат отправными точками для разработки собственных высокопроизводительных решений.

Для хранения обученных моделей используется концепция SavedModel.

Экосистема инструментов в TensorFlow 2.0 прошла тщательную очистку от конвейеров обработки данных до экспорта моделей в TensorBoard – инструмент для визуализации процесса обучения, отладки кода и оптимизации обучаемой модели. TensorBoard теперь совмещен с Keras, и может быть вызван однострочным кодом:

Python

1

2

3

4

5

tb_callback=keras.callbacks.TensorBoard(log_dir=log_dir)

model.fit(x_train,y_train,epochs=5,

validation_data=[x_test,y_test],

callbacks=[tb_callback])

Рабочий процесс обучения, оптимизации и развертывания модели теперь выглядит так:

  1. Загрузка данных через tf.data. Данные для обучения считываются через специальные входные конвейеры. Характеристики свойств описываются в tf.feature_column. Поддерживается ввод данных из памяти (например, из NumPy).
  2. Создание, обучение и валидация модели в tf.keras или из готовых моделей в tf.estimator. Если не хотите обучать модели с нуля, вы можете применить трансферное обучение моделей Keras или Estimator, используя модели из TensorFlow Hub.
  3. Запуск и дебаггинг с Eager execution с последующей работой над графом с помощью tf.function (проиллюстрировано в блокноте Jupyter). Процесс сохраняет плюсы выполнения графов в TensorFlow 1.x: оптимизация производительности, удаленное выполнение, сериализация, экспорт и развертывание. К старым методикам добавляется гибкость программ на простом Python.
  4. Использование распределенного обучения. В крупных задачах машинного обучения Distribution Strategy API позволит легко распределять и обучать модели. TensorFlow обеспечивает поддержку различных аппаратных ускорителей – как CPU, так и графических процессоров и TPU, а также конфигураций с несколькими узлами, включая блоки TPU, кластеры Kubernetes и облачные вычисления. Также у TensorFlow есть Lite-версия, позволяющая обучать (или дообучать) модели на мобильных платформах.
  5. Экспорт в SavedModel. TensorFlow стандартизирует формат SavedModel в качестве формата обмена для TensorFlow, TensorFlow Lite, TensorFlow.js, TensorFlow Hub и сторонних платформ.

TensorFlow 1.x некоторое время еще будет поддерживаться, в том числе в течение года будут выпускаться исправления безопасности для последней вариации первой версии. Но главные силы после выпуска стабильной версии TensorFlow 2.0 будут перекинуты на новую версию и развитие ее экосистемы. Сейчас TensorFlow 2.0 доступен в альфа-версии:

Shell

1

pip install tensorflow==2.0.0-alpha0

Для апгрейда до версии TensorFlow 2.0 команда разработчиков написала upgrade script:

Shell

1

tf_upgrade_v2--infile tensorfoo.py--outfile tensorfoo-upgraded.py

API в TensorFlow 2.0 стало более связным и ясным, сокращено дублирование функционала. В связи с этим произошли изменения названий множества функций и их расположения. Чтобы избежать проблем с совместимостью, написан модуль tf.compat.v1, содержащий все элементы API 1.x кроме tf.contrib.

При запуске upgrade script все изменения можно посмотреть в логе. В результате обработки скриптом старая программа полностью переходит на новый API. Но для понимания нового, ясного стиля TensorFlow 2.0 нужно внимательно изучить документацию.

Заметим, что сайт TensorFlow тоже существенно изменился, и значительная часть примеров теперь доступна и на русском языке.

Основные источники: первый, второй.


Источник: proglib.io

Комментарии: