Apache MXNet - Наборы инструментов и экосистема

Для поддержки исследований и разработки приложений глубокого обучения во многих областях Apache MXNet предоставляет нам богатую экосистему наборов инструментов, библиотек и многого другого. Давайте изучим их -

Наборы инструментов

Ниже приведены некоторые из наиболее часто используемых и важных наборов инструментов, предоставляемых MXNet.

GluonCV

Как следует из названия, GluonCV - это набор инструментов Gluon для компьютерного зрения на базе MXNet. Он обеспечивает реализацию современных алгоритмов DL (Deep Learning) в компьютерном зрении (CV). С помощью набора инструментов GluonCV инженеры, исследователи и студенты могут легко проверять новые идеи и изучать резюме.

Ниже приведены некоторые из features of GluonCV -

  • Он обучает сценарии воспроизведению результатов последних исследований.

  • Более 170+ качественных предварительно обученных моделей.

  • Воспользуйтесь гибким шаблоном разработки.

  • GluonCV легко оптимизировать. Мы можем развернуть его, не удерживая тяжелый каркас DL.

  • Он предоставляет тщательно разработанные API-интерфейсы, которые значительно упрощают реализацию.

  • Поддержка сообщества.

  • Легко понять реализации.

Ниже приведены supported applications от инструментария GluonCV:

  • Классификация изображений

  • Обнаружение объекта

  • Семантическая сегментация

  • Сегментация экземпляра

  • Оценка позы

  • Распознавание видео действий

Мы можем установить GluonCV с помощью pip следующим образом:

pip install --upgrade mxnet gluoncv

ГлюонНЛП

Как следует из названия, GluonNLP - это набор инструментов Gluon для обработки естественного языка (NLP) на базе MXNet. Он обеспечивает реализацию современных моделей DL (Deep Learning) в NLP.

С помощью инструментария GluonNLP инженеры, исследователи и студенты могут создавать блоки для конвейеров и моделей текстовых данных. На основе этих моделей они могут быстро прототипировать исследовательские идеи и продукт.

Ниже приведены некоторые особенности GluonNLP:

  • Он обучает сценарии воспроизведению результатов последних исследований.

  • Набор предварительно обученных моделей для общих задач НЛП.

  • Он предоставляет тщательно разработанные API-интерфейсы, которые значительно упрощают реализацию.

  • Поддержка сообщества.

  • Он также предоставляет учебные пособия, которые помогут вам приступить к выполнению новых задач НЛП.

Ниже приведены задачи НЛП, которые мы можем реализовать с помощью инструментария GluonNLP:

  • Вложение слов

  • Языковая модель

  • Машинный перевод

  • Текстовая классификация

  • Анализ настроений

  • Вывод на естественном языке

  • Генерация текста

  • Анализ зависимостей

  • Признание именованных сущностей

  • Классификация намерений и маркировка слотов

Мы можем установить GluonNLP с помощью pip следующим образом:

pip install --upgrade mxnet gluonnlp

Глюоны

Как следует из названия, GluonTS - это набор инструментов Gluon для вероятностного моделирования временных рядов на базе MXNet.

Он предоставляет следующие функции -

  • Современные модели глубокого обучения (SOTA), готовые к обучению.

  • Утилиты для загрузки, а также итерации наборов данных временных рядов.

  • Строительные блоки для определения вашей собственной модели.

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

Они также могут использовать предоставленные абстракции и строительные блоки для создания пользовательских моделей временных рядов и быстро сравнивать их с базовыми алгоритмами.

Мы можем установить GluonTS с помощью pip следующим образом:

pip install gluonts

GluonFR

Как следует из названия, это набор инструментов Apache MXNet Gluon для FR (распознавания лиц). Он предоставляет следующие функции -

  • Современные (SOTA) модели глубокого обучения в распознавании лиц.

  • Реализация SoftmaxCrossEntropyLoss, ArcLoss, TripletLoss, RingLoss, CosLoss / AMsoftmax, L2-Softmax, A-Softmax, CenterLoss, ContrastiveLoss и LGM Loss и т. Д.

Для установки Gluon Face нам понадобится Python 3.5 или новее. Нам также сначала нужно установить GluonCV и MXNet следующим образом:

pip install gluoncv --pre
pip install mxnet-mkl --pre --upgrade
pip install mxnet-cuXXmkl --pre –upgrade # if cuda XX is installed

После того, как вы установили зависимости, вы можете использовать следующую команду для установки GluonFR -

From Source

pip install git+https://github.com/THUFutureLab/gluon-face.git@master

Pip

pip install gluonfr

Экосистема

Теперь давайте исследуем богатые библиотеки, пакеты и фреймворки MXNet -

Тренер Р.Л.

Coach, фреймворк Python Reinforcement Learning (RL), созданный лабораторией Intel AI. Это позволяет легко экспериментировать с современными алгоритмами RL. Coach RL поддерживает Apache MXNet в качестве серверной части и позволяет решить простую интеграцию новой среды.

Чтобы легко расширять и повторно использовать существующие компоненты, Coach RL очень хорошо отделяет основные компоненты обучения с подкреплением, такие как алгоритмы, среды, архитектуры NN, политики исследования.

Ниже приведены агенты и поддерживаемые алгоритмы для структуры Coach RL.

Агенты по оптимизации стоимости

  • Сеть Deep Q (DQN)

  • Сеть Double Deep Q (DDQN)

  • Дуэльная сеть Q

  • Смешанный Монте-Карло (MMC)

  • Постоянное преимущество обучения (PAL)

  • Категориальная сеть Deep Q (C51)

  • Квантильная регрессия Deep Q Network (QR-DQN)

  • N-Step Q Learning

  • Нейронный эпизодический контроль (NEC)

  • Нормализованные функции преимущества (NAF)

  • Rainbow

Агенты оптимизации политики

  • Градиенты политики (PG)

  • Критик-субъект асинхронного преимущества (A3C)

  • Глубокие детерминированные градиенты политики (DDPG)

  • Проксимальная оптимизация политики (PPO)

  • Обрезанная проксимальная оптимизация политики (CPPO)

  • Обобщенная оценка преимущества (GAE)

  • Пример эффективного актера-критика с опытом воспроизведения (ACER)

  • Мягкий актер-критик (SAC)

  • Двойной отложенный глубокий детерминированный градиент политики (TD3)

Генеральные агенты

  • Прямое прогнозирование будущего (DFP)

Имитационные обучающие агенты

  • Поведенческое клонирование (BC)

  • Условное имитационное обучение

Агенты обучения с иерархическим подкреплением

  • Иерархический актер-критик (HAC)

Библиотека Deep Graph

Библиотека Deep Graph Library (DGL), разработанная командами NYU и AWS, Шанхай, представляет собой пакет Python, который обеспечивает простую реализацию графических нейронных сетей (GNN) поверх MXNet. Он также обеспечивает простую реализацию GNN поверх других существующих основных библиотек глубокого обучения, таких как PyTorch, Gluon и т. Д.

Deep Graph Library - бесплатное программное обеспечение. Он доступен во всех дистрибутивах Linux позже, чем Ubuntu 16.04, macOS X и Windows 7 или новее. Также требуется версия Python 3.5 или новее.

Ниже приведены особенности DGL -

No Migration cost - Использование DGL не требует затрат на миграцию, поскольку оно построено на популярных существующих структурах DL.

Message Passing- DGL обеспечивает передачу сообщений и имеет универсальный контроль над ними. Передача сообщений варьируется от низкоуровневых операций, таких как отправка по выбранным краям, до высокоуровневого управления, такого как обновления функций на уровне графа.

Smooth Learning Curve - Выучить и использовать DGL довольно просто, поскольку мощные пользовательские функции гибки и просты в использовании.

Transparent Speed Optimization - DGL обеспечивает прозрачную оптимизацию скорости за счет автоматического пакетирования вычислений и умножения разреженных матриц.

High performance - Для достижения максимальной эффективности DGL автоматически группирует обучение DNN (глубокие нейронные сети) на одном или нескольких графах вместе.

Easy & friendly interface - DGL предоставляет нам простые и удобные интерфейсы для доступа к граничным функциям, а также для управления структурой графа.

InsightFace

InsightFace, набор инструментов глубокого обучения для анализа лиц, который обеспечивает реализацию алгоритма анализа лиц SOTA (современного) в компьютерном зрении на базе MXNet. Он обеспечивает -

  • Качественный большой набор предварительно обученных моделей.

  • Ультрасовременные сценарии обучения (SOTA).

  • InsightFace легко оптимизировать. Мы можем развернуть его, не удерживая тяжелый каркас DL.

  • Он предоставляет тщательно разработанные API-интерфейсы, которые значительно упрощают реализацию.

  • Строительные блоки для определения вашей собственной модели.

Мы можем установить InsightFace с помощью pip следующим образом:

pip install --upgrade insightface

Обратите внимание, что перед установкой InsightFace установите правильный пакет MXNet в соответствии с конфигурацией вашей системы.

Керас-MXNet

Поскольку мы знаем, что Keras - это высокоуровневый API нейронной сети (NN), написанный на Python, Keras-MXNet предоставляет нам внутреннюю поддержку Keras. Он может работать поверх высокопроизводительной и масштабируемой инфраструктуры Apache MXNet DL.

Особенности Keras-MXNet упомянуты ниже -

  • Позволяет пользователям легко, плавно и быстро создавать прототипы. Все это происходит благодаря удобству использования, модульности и расширяемости.

  • Поддерживает как CNN (сверточные нейронные сети), так и RNN (рекуррентные нейронные сети), а также их комбинацию.

  • Безупречно работает как на центральном процессоре (ЦП), так и на графическом процессоре (ГП).

  • Может работать на одном или нескольких GPU.

Чтобы работать с этим бэкендом, вам сначала необходимо установить keras-mxnet следующим образом:

pip install keras-mxnet

Теперь, если вы используете графические процессоры, установите MXNet с поддержкой CUDA 9 следующим образом:

pip install mxnet-cu90

Но если вы используете только CPU, установите базовый MXNet следующим образом:

pip install mxnet

MXBoard

MXBoard - это инструмент для ведения журнала, написанный на Python, который используется для записи фреймов данных MXNet и отображения в TensorBoard. Другими словами, MXBoard предназначена для работы с tenorboard-pytorch API. Он поддерживает большинство типов данных в TensorBoard.

Некоторые из них упомянуты ниже -

  • Graph

  • Scalar

  • Histogram

  • Embedding

  • Image

  • Text

  • Audio

  • Кривая точности-отзыва

MXFusion

MXFusion - это модульная библиотека вероятностного программирования с глубоким обучением. MXFusion позволяет нам полностью использовать модульность, которая является ключевой особенностью библиотек глубокого обучения, для вероятностного программирования. Он прост в использовании и предоставляет пользователям удобный интерфейс для разработки вероятностных моделей и применения их к реальным проблемам.

MXFusion проверен на Python версии 3.4 и более поздних версиях на MacOS и Linux. Чтобы установить MXFusion, нам необходимо сначала установить следующие зависимости:

  • MXNet> = 1,3

  • Networkx> = 2.1

С помощью следующей команды pip вы можете установить MXFusion -

pip install mxfusion

TVM

Apache TVM, стек компилятора сквозного глубокого обучения с открытым исходным кодом для аппаратного обеспечения, такого как процессоры, графические процессоры и специализированные ускорители, призван заполнить пробел между ориентированными на производительность средами глубокого обучения и ориентированными на производительность аппаратными механизмами. . В последней версии MXNet 1.6.0 пользователи могут использовать Apache (инкубирующий) TVM для реализации высокопроизводительных ядер операторов на языке программирования Python.

Apache TVM на самом деле начинался как исследовательский проект в группе SAMPL Школы компьютерных наук и инженерии Пола Г. Аллена Вашингтонского университета, и теперь это усилие, которое проходит инкубацию в Apache Software Foundation (ASF), которым руководит OSC ( сообщество с открытым исходным кодом), в котором участвуют несколько отраслевых и академических институтов в рамках Apache.

Ниже приведены основные особенности Apache (инкубационного) TVM.

  • Упрощает прежний процесс разработки на C ++.

  • Позволяет использовать одну и ту же реализацию для нескольких аппаратных бэкендов, таких как CPU, GPU и т. Д.

  • TVM обеспечивает компиляцию моделей DL в различных фреймворках, таких как Kears, MXNet, PyTorch, Tensorflow, CoreML, DarkNet, в минимальные развертываемые модули на различных аппаратных базах.

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

XFer

Xfer, фреймворк трансферного обучения, написан на Python. Он в основном берет модель MXNet и обучает метамодель или модифицирует модель для нового целевого набора данных.

Проще говоря, Xfer - это библиотека Python, которая позволяет пользователям быстро и легко передавать знания, хранящиеся в DNN (глубоких нейронных сетях).

Xfer можно использовать -

  • Для классификации данных произвольного числового формата.

  • К распространенным случаям изображений или текстовых данных.

  • Как конвейер, который рассылает спам от извлечения функций к обучению перепрофилирователя (объект, выполняющий классификацию в целевой задаче).

Ниже приведены особенности Xfer:

  • Ресурсоэффективность

  • Эффективность данных

  • Легкий доступ к нейронным сетям

  • Моделирование неопределенности

  • Быстрое прототипирование

  • Утилиты для извлечения признаков из NN