Tensorpack: быстрый интерфейс для обучения нейросетей на TensorFlow

Tensorpack — это интерфейс для обучения нейронных моделей, который основан на TensorFlow. Обучение моделей на Tensorpack занимает в 1.2-5 раза меньше времени, чем на Keras, оригинальной высокоуровневой библиотеке на TensorFlow. 

Фактически Tensorpack представляет собой высокоуровневое API над TensorFlow, но с преимуществом в скорости работы и гибкостью в использовании. Tensorpack фокусируется на двух аспектах: скорость обучения модели и работа с крупными наборами данных.

Время обучения

В Tensorpack оптимизировано использование TensorFlow так, чтобы исключить излишние траты вычислительных ресурсов. По результатам экспериментов, для стандартных архитектур сверточных нейросетей Tensorpack работает в 1.2-5 быстрее, чем эквивалентный код на Keras. 

Распрараллеливание данных, использование нескольких GPU и распределенных вычислений доступны в Tensorpack для ускорения времени обучения модели. Время обучения с использованием этих техник масштабируется так же, как у TensorFlow.

Обработка больших датасетов

Обычно использование tf.data для загрузки данных в Python не необходимо. Символическое программирование делает обработку данных более сложной. В Tensorpack есть отдельная библиотека для эффективной обработки крупный наборов данных на чистом Python с автопараллелизацией.

Tensorpack — это не обертка над моделями

На текущий момент существует множество символических оберток над функциями. Tensorpack включает несколько общих моделей. Но пользователь может самостоятельно использовать библиотеку для символического обертывания внутри Tensorpack: tf.layers, Keras, slim, tflearn, tensorlayer и т.д.

Функционал Tensorpack 

БиблиотекаTensorpack состоит из следующих ключевых элементов:

  • DataFlow: библиотека для эффективной загрузки данных в Python. Помимо DataFlow, можно использовать оригинальные операторы для обработки данных из TF;
  • Любая библиотека для символической обертки функций, которая основана на TensorFlow, может использоваться для определения модели;
  • Тренеры (trainers) Tensorpack отвечают за обучающие циклы. Они отвечают и за параллелизацию, использование GPU и разпределенное обучение;
  • Callback’и используются во время обучения для определения сторонних действий, не считая основных итераций обучения модели. Их можно кастомизировать на усмотрение
Высокоуровневая визуализация функционала Tensorpack

Открытые тьюториалы по работе с Tensorpack доступны по ссылке.

Подписаться
Уведомить о
guest

0 Comments
Межтекстовые Отзывы
Посмотреть все комментарии

gogpt