Команда Google TensorFlow анонсировала свою новейшую и довольно простую в использовании версию в начале этого года. Для людей, которые использовали любой из TensorFlow 1.XX, эта версия менее уродлива, менее жутка и более удобна для пользователя (технические обновления и изменения обсуждаются ниже). Я напишу серию из трех частей, и это будет началом и самой короткой. Тема этих частей следующая:

  • Представляем TF 2.0
  • Классификация изображений в TensorFlow 2.0
  • Перенос обучения в TensorFlow 2.0

Что такое TensorFlow и Keras?

Википедия предложила TensorFlow - бесплатную программную библиотеку с открытым исходным кодом для обработки потока данных и дифференцируемого программирования для различных задач. По-человечески говоря, TensorFlow - это библиотека с открытым исходным кодом для крупномасштабного построения моделей машинного обучения. На сегодняшний день это самая популярная библиотека для создания моделей глубокого обучения. У него также самое сильное и огромное сообщество разработчиков, исследователей и участников.

Keras - это высокоуровневый API нейронных сетей, написанный на Python и способный работать поверх Tensorflow, Theano или CNTK. Он очень популярен в сообществе исследователей и разработчиков, поскольку поддерживает быстрое экспериментирование, создание прототипов и удобный API. Дружественность к пользователю приводит к потере доступа к внутренним деталям TensorFlow, но разумное количество сложных вещей все же можно сделать.

Что нового в Tensorflow 2.0

Tensorflow работает с построением вычислительного графа для любых производимых вычислений; начиная от сложения двух чисел и заканчивая созданием генеративной состязательной сети. Как только график построен, он выполняется в так называемом сеансе. Это может показаться большой дозой для новичка (теперь вы можете понять, почему TensorFlow 1 был немного уродливым), и именно поэтому было трудно, особенно для новичка, напрямую перейти в TensorFlow для реализации нейронных сетей.

С появлением TensorFlow 2 все стало довольно аккуратно, гибко и легко для всех, чтобы начать работу в области глубокого обучения путем экспериментов. Tensorflow 2 включает тесную интеграцию Keras и интуитивно понятный высокоуровневый API tf.keras для создания нейронных сетей и других моделей машинного обучения. Вы получаете удобство использования Keras, а также можете воспользоваться преимуществами доступа ко всем низкоуровневым классам TensorFlow. Это идеальное сочетание для людей из самых разных отраслей и опыта; отсюда и прекрасная история любви TensorFlow и Keras.

Согласно официальному комментарию к новым функциям Tensorflow 2, их можно разделить на три основные категории:

1) Юзабилити

  • С интеграцией Keras удобство использования стало очень мощным. Люди с разным уровнем знаний в области глубокого обучения теперь могут использовать TensorFlow в своей работе; это в большей степени увеличивает удобство использования.
  • Одно из самых самых больших изменений - это режим активного выполнения по умолчанию. Проще говоря, вам не нужно строить графики, а затем выполнять их в сеансах для выполнения базовой операции умножения. Вы можете просто создавать глубокие сети на лету. Это скрывает большую сложность от разработчика, который пишет код для нейронных сетей. Однако это не лишает вас возможности пользоваться графиком из-за его преимуществ, и, следовательно, к ним можно получить доступ с помощью tf.function.

2) Ясность

  • Удалены повторяющиеся функции. Для их удаления была проведена большая очистка фактической кодовой базы.
  • Синтаксис стал более интуитивным (благодаря Керасу) и последовательным во всем.

3) Гибкость

  • Как уже говорилось, вы по-прежнему можете использовать низкоуровневые API-интерфейсы для различных типов пользовательских задач.
  • Он также предоставляет наследуемые интерфейсы для переменных, слоев и контрольных точек.

Архитектура TensorFlow 2 выглядит следующим образом.

Так что нас ждет?

В TensorFlow намного больше обновлений и новых функций, и мы рассмотрим их в будущих блогах этой серии. В следующем блоге мы обсудим, как можно запустить компьютерное зрение, создав классификатор изображений с помощью сверточных нейронных сетей в Tensorflow 2. Вы можете проверить мой предыдущий блог на тему Начало работы с компьютерным зрением, чтобы получить представление о компьютерное зрение. Это поможет вам понять общую картину и наверняка поможет справиться с новыми блогами. Франсуа Шолле, автор Keras, недавно опубликовал тетрадь, которая служит ускоренным курсом для Tensorflow 2. Для тщательного изучения tensorflow 2 вы можете проверить две интересные специализации, предлагаемые на Coursera и Udacity .

Чтобы узнать больше о TensorFlow 2, посетите https://www.tensorflow.org/

Вы также можете связаться со мной для обсуждения в моем LinkedIn.