Глубокое обучение с TensorFlow 2.0: все, что вам нужно знать
Опубликовано: 2021-01-05TensorFlow — это платформа машинного обучения от Google. Он в основном используется для задач, связанных с глубоким обучением, а также легко интегрируется с другими API Google. TensorFlow, безусловно, является одной из наиболее часто используемых библиотек для глубокого обучения в отрасли прямо сейчас, и ее стоит изучить!
К концу этого урока вы будете знать следующее.
- Что такое ТензорФлоу?
- Что нового в ТФ 2.0?
- TensorFlow против Кераса
- Установка ТензорФлоу
- Классификатор изображений в TensorFlow
Оглавление
Что такое TensorFlow?
TensorFlow начинался как библиотека глубокого обучения с открытым исходным кодом от Google, а теперь представляет собой полную структуру для сквозных процессов машинного обучения. Вам может быть интересно, почему Google выбрал это имя и что означает «Tensor».
Что такое тензор?
Тензоры фактически являются многомерными массивами, которые позволяют выполнять сложные операции над многомерными массивами. Однако они представляют собой не просто N-мерный массив.
Тензор также включает в себя такие преобразования, как скалярное произведение, сложение, умножение матриц и т. д.
Но почему они важны?
Тензоры не новы. Они используются уже давно, но их характеристики активно используются в области глубокого обучения, где данные обычно огромны и многомерны.

Тензоры, как и массивы Numpy, также имеют форму и тип данных. Все тензоры неизменяемы, как числа и строки Python: вы никогда не сможете обновить содержимое тензора, только создадите новый.
Но что отличает их от обычных массивов Numpy, так это их способность использовать память графического процессора и вычислительную мощность, что имеет первостепенное значение, когда данные многомерны и их размер исчисляется миллионами и более.
Тензоры широко используются в средах глубокого обучения, таких как Pytorch от Facebook и TensorFlow от Google, которые даже названы в их честь!
Google также разработал еще один ускоритель искусственного интеллекта, называемый Tensor Processing Unit (TPU), специально для TensorFlow, который выводит оптимизацию на новый уровень!
Читайте: Регуляризация в глубоком обучении
Что нового в ТФ 2.0?
Google выпустил первую версию TensorFlow 1 в 2015 году командой Google Brain.
Использование TensorFlow 1.x для создания нейронных сетей было непростой задачей, так как требовалось написать много кода.
Ленивая оценка против нетерпеливой оценки
В TensorFlow 1.x раньше нужно было создавать сеансы и запускать эти сеансы для создания вывода любого «графа». Давайте разберемся с этим с помощью кода ниже
импортировать тензорный поток как tf а = tf.константа (1) |
Запуск приведенного выше кода не даст вам желаемого результата, т. е. 3. Это связано с тем, что TensorFlow 1.x работал в сеансах.
Сеанс — это тип среды, который содержит все переменные и необходимые преобразования.
Был создан граф преобразований, который не оценивался до тех пор, пока он не был специально вызван запуском tf.session.run().
Следовательно, приведенный выше код вернет то, что вы ожидаете, если вы сделаете:
tf.Session.run(c) |
Это называется ленивой оценкой. Поскольку он лениво ждет, пока ему конкретно не скажут запустить.
Этот длительный и сложный процесс необходимо было решить, и поэтому возникла необходимость в TensorFlow 2.x.
TF 2.x поставляется с оценкой Eager по умолчанию, что позволяет нам очень легко кодировать и запускать процессы.
Сеансов сейчас нет, а обучение нейронной сети, занимавшее 100 строк в TF 1.x, занимает меньше 20 в TF 2.x.
Нетерпеливое выполнение TensorFlow — это императивная среда программирования, которая оценивает операции немедленно, без построения графиков: операции возвращают конкретные значения вместо построения вычислительного графа для последующего запуска.
Это упрощает начало работы с моделями TensorFlow и отладки, а также уменьшает количество шаблонов.
TensorFlow против Кераса
На самом деле вопрос не в TensorFlow и Keras. Это TensorFlow с Keras. Keras предоставил высокоуровневый API поверх TensorFlow 1.x, что упростило работу с ним.

Теперь с TF 2.0 TensorFlow официально сделал Keras частью своего API для проектирования моделей и обучения с помощью tf.keras.
Весь код, который ранее выполнялся в Keras, теперь предлагается выполнять с помощью tf.keras в TF 2.0, поскольку он позволяет использовать все компоненты и экосистему TensorFlow, такие как:
- TensorFlow Serving , который используется для бесперебойного обслуживания/развертывания моделей TensorFlow.
- TensorFlow Lite — мобильная версия TensorFlow, способная работать на Android и IOS.
- TensorFlow.js — это набор API-интерфейсов, который позволяет нам создавать и обучать модели, используя либо низкоуровневую библиотеку линейной алгебры JavaScript, либо высокоуровневый API слоев. Следовательно, модели глубокого обучения можно обучать и запускать в браузере.
- TensorBoard — это набор инструментов визуализации для понимания, отладки и оптимизации программ TensorFlow.
Установка ТензорФлоу
Если вы новичок в машинном обучении, то самый простой способ начать работу — открыть блокнот Colab. Просто перейдите на https://colab.research.google.com/ и нажмите «Новый блокнот Python 3».
Убедитесь, что ядро говорит «подключено» в правом верхнем углу. Хорошие новости: TensorFlow предустановлен в Google Colab.
Вуаля! Готово.
Чтобы проверить, используете ли вы правильную версию, запустите приведенный ниже фрагмент кода.
импортировать тензорный поток как tf tf.__версия__ |
Там должна быть указана любая версия выше 2.0.0, и все готово.
Классификатор изображений в TensorFlow
Давайте теперь рассмотрим «Hello World» проблем глубокого обучения — набор данных MNIST.
Мы построим короткую нейронную сеть для прогнозирования на основе набора данных MNIST. Мы выполним следующие шаги.
- Создайте нейронную сеть, которая классифицирует изображения.
- Обучите нейронную сеть.
- Оцените точность модели
Импорт TensorFlow.
импортировать тензорный поток как tf |
Загрузка данных MNIST.
mnist = tf.keras.datasets.mnist (x_train, y_train), (x_test, y_test) = mnist.load_data() |
Построение модели tf.keras.Sequential путем наложения слоев.
Нам также нужно выбрать оптимизатор и функцию потерь для обучения модели.
модель = tf.keras.models.Sequential([ tf.keras.layers.Flatten (input_shape = (28, 28)), tf.keras.layers.Dense(128, активация='relu'), tf.keras.layers.Dropout(0.2), tf.keras.layers.Dense(10) ]) |
Определение функции потерь разреженной категориальной перекрестной энтропии.
loss_fn = tf.keras.losses.SparseCategoricalCrossentropy (from_logits = True) |
Составление модели.
model.compile (оптимизатор = 'адам', потеря=потеря_fn, метрики=['точность']) |
Обучение модели с 5 эпохами.
model.fit (x_train, y_train, эпохи = 5) |
Оценка модели.
model.evaluate (x_test, y_test, подробный = 2) |
313/313 — 0 с — потеря: 0,0825 — точность: 0,9753 [0,082541823387146, 0,9753000140190125] |
Классификатор изображений теперь обучен с точностью ~ 98% на этом наборе данных.
Прежде чем ты уйдешь
TensorFlow 2 фокусируется на простоте и удобстве использования с такими обновлениями, как быстрое выполнение, интуитивно понятные высокоуровневые API и гибкое построение моделей на любой платформе.

В наши дни TensorFlow — это библиотека/инструмент для любой задачи глубокого обучения. Другой наиболее используемой и популярной библиотекой является Facebook PyTorch.
Расширенная экосистема TensorFlow делает его отличным местом для начала пути к глубокому обучению. Это легко понять и, что более важно, легко реализовать.
Лучше всего начать с удобного Sequential API. Вы можете создавать модели, соединяя строительные блоки. Узнайте больше о методах глубокого обучения.
Заключение
Итак, теперь, когда у вас есть подробное представление обо всех основных платформах глубокого обучения, вы можете принять обоснованное решение и выбрать ту, которая лучше всего подходит для вашего проекта.
Если вам интересно узнать больше о глубоком обучении и искусственном интеллекте, ознакомьтесь с нашей программой диплома PG в области машинного обучения и искусственного интеллекта, которая предназначена для работающих профессионалов и предлагает более 30 тематических исследований и заданий, более 25 отраслевых сессий наставничества, 5+ практических рук. - на завершающих проектах, более 450 часов тщательного обучения и помощи в трудоустройстве в ведущих фирмах.