Введение

Библиотека модульная и динамическая, дизайн навеян Torch и Chainer.

Общая схема

Есть набор переменных-тензоров, они подключены к модулям-нодам, которые умеют на основе этих переменных и входных данных вычислять некоторый выход. Модули можно объединять в маленькие контейнеры-графы - паралелльно или последовательно. Такое ограничение вызвано определенными ограничениями с одной стороны в знаниях, какие архитектуры эффективны и достаточны. Вторая сторона - обеспечение полного контроля обучения в случаях работы с экзотическими архитектурами, в частности в схемах обучения без учителя, с участием нескольких сетей.

Стандартная работа

Стандартный метод работы выглядит примерно так, требуется следующее:

1. Данные (входные и ожидаемые выходные)
2. Модель-сеть
3. Критерий обучения

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