fbpx
  • 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 доступны по ссылке.