TensorFlow 2.0 — это более гибкий фреймворк для обучения ML-моделей от Google. Он основан на высокоуровневой библиотеке над TensorFlow 1.x, — Keras. Ключевые отличия новой версии заключаются в дефолтных eager вычислениях (процедура вычисляется сразу без построения графа) и вычислениях в функциях на Python. Описание процедуры обучения стало более похоже на стандартное программирование на Python в сравнении с TensorFlow 1.x.
В TensorFlow 2.0 встроено несколько способов использования обученной модели в личном продукте:
- TensorFlow Serving для хранения модели в облаке;
- TensorFlow Lite для использования модели на мобильных устройствах;
- TensorFlow.JS для использования модели в веб-приложении
Для исследователей, которые хотят описать какую-то отсутствующую в TensorFlow процедуру, теперь доступны наследуемые интерфейсы. Это позволит разрабатывать поверх TensorFlow без необходимости пересобирать TensorFlow.
Что там внутри
Чтобы иметь возможность использоваться модели в разных условиях: в облаке, вебе, браузере и Node.js, — разработчики стандартизировали формат файла SavedModel. SavedModel — это формат, в котором сохраняется обученная модель.
Для высоконагруженных кейсов можно использовать Distribution Strategy API, чтобы распределить обучение с минимальными изменениями кода. Этот API поддерживает распределенное обучение с Model.fit от Keras и кастомные циклы обучения. Помимо этого, стала доступна Multi-GPU поддержка. В будущем релизе планируется поддержка облачного TPU. TensorFlow 2.0 предоставляет функционал для оптимизации обучения на GPU. Модели в TensorFlow 2.0 обучаются в 3 раза быстрее с использованием mixed precision обучения на Volta и Turing GPU.
В TensorFlow Datasets теперь хранятся стандартные датасеты для разных типов входных данных (картинки, текст, видео и т.п.).Для тех, кто хочет перейти с TensorFlow 1.x на TensorFlow 2.0, публично доступен тьюториал. В релизе TensorFlow 2.0 также доступен скрипт для автоматической конвертации моделей из прошлых версий.