Apache MXNet: kits de herramientas y ecosistema
Para respaldar la investigación y el desarrollo de aplicaciones de aprendizaje profundo en muchos campos, Apache MXNet nos proporciona un rico ecosistema de kits de herramientas, bibliotecas y muchos más. Explorémoslos -
Juegos de herramientas
A continuación se muestran algunos de los conjuntos de herramientas más utilizados e importantes proporcionados por MXNet:
GluonCV
Como su nombre lo indica, GluonCV es un kit de herramientas Gluon para visión por computadora con tecnología MXNet. Proporciona la implementación de algoritmos DL (Deep Learning) de última generación en visión por computadora (CV). Con la ayuda de los ingenieros del kit de herramientas GluonCV, los investigadores y los estudiantes pueden validar nuevas ideas y aprender CV fácilmente.
A continuación se muestran algunos de los features of GluonCV -
Entrena guiones para reproducir resultados de vanguardia informados en las últimas investigaciones.
Más de 170+ modelos previamente entrenados de alta calidad.
Adopte un patrón de desarrollo flexible.
GluonCV es fácil de optimizar. Podemos implementarlo sin retener un marco DL pesado.
Proporciona API cuidadosamente diseñadas que reducen en gran medida la complejidad de la implementación.
Soporte comunitario.
Implementaciones fáciles de entender.
Los siguientes son los supported applications por el kit de herramientas GluonCV:
Clasificación de imágenes
Detección de objetos
Segmentación semántica
Segmentación de instancias
Estimación de pose
Reconocimiento de acción de video
Podemos instalar GluonCV usando pip de la siguiente manera:
pip install --upgrade mxnet gluoncv
GluonNLP
Como su nombre lo indica, GluonNLP es un kit de herramientas de Gluon para el procesamiento del lenguaje natural (NLP) con tecnología MXNet. Proporciona implementación de modelos DL (Deep Learning) de última generación en PNL.
Con la ayuda de los ingenieros, investigadores y estudiantes del kit de herramientas GluonNLP pueden construir bloques para modelos y canalizaciones de datos de texto. Basándose en estos modelos, pueden crear prototipos rápidamente de las ideas y el producto de la investigación.
A continuación se presentan algunas de las características de GluonNLP:
Entrena guiones para reproducir resultados de vanguardia informados en las últimas investigaciones.
Conjunto de modelos previamente entrenados para tareas comunes de PNL.
Proporciona API cuidadosamente diseñadas que reducen en gran medida la complejidad de la implementación.
Soporte comunitario.
También proporciona tutoriales para ayudarlo a comenzar con nuevas tareas de PNL.
Las siguientes son las tareas de PNL que podemos implementar con el kit de herramientas GluonNLP:
Incrustación de palabras
Modelo de lenguaje
Máquina traductora
Clasificación de texto
Análisis de los sentimientos
Inferencia de lenguaje natural
Generación de texto
Análisis de dependencias
Reconocimiento de entidad nombrada
Clasificación por intención y etiquetado de ranuras
Podemos instalar GluonNLP usando pip de la siguiente manera:
pip install --upgrade mxnet gluonnlp
Gluones
Como su nombre lo indica, GluonTS es un conjunto de herramientas Gluon para el modelado probabilístico de series de tiempo con tecnología MXNet.
Proporciona las siguientes características:
Modelos de aprendizaje profundo de última generación (SOTA) listos para ser entrenados.
Las utilidades para cargar e iterar sobre conjuntos de datos de series de tiempo.
Bloques de construcción para definir su propio modelo.
Con la ayuda de los ingenieros del kit de herramientas GluonTS, los investigadores y los estudiantes pueden entrenar y evaluar cualquiera de los modelos incorporados en sus propios datos, experimentar rápidamente con diferentes soluciones y encontrar una solución para sus tareas de series de tiempo.
También pueden utilizar las abstracciones y los bloques de construcción proporcionados para crear modelos de series de tiempo personalizados y compararlos rápidamente con los algoritmos de referencia.
Podemos instalar GluonTS usando pip de la siguiente manera:
pip install gluonts
GluonFR
Como su nombre lo indica, es un kit de herramientas Apache MXNet Gluon para FR (reconocimiento facial). Proporciona las siguientes características:
Modelos de deep learning de última generación (SOTA) en reconocimiento facial.
La implementación de SoftmaxCrossEntropyLoss, ArcLoss, TripletLoss, RingLoss, CosLoss / AMsoftmax, L2-Softmax, A-Softmax, CenterLoss, ContrastiveLoss y LGM Loss, etc.
Para instalar Gluon Face, necesitamos Python 3.5 o posterior. También primero debemos instalar GluonCV y MXNet de la siguiente manera:
pip install gluoncv --pre
pip install mxnet-mkl --pre --upgrade
pip install mxnet-cuXXmkl --pre –upgrade # if cuda XX is installed
Una vez que haya instalado las dependencias, puede usar el siguiente comando para instalar GluonFR:
From Source
pip install git+https://github.com/THUFutureLab/gluon-face.git@master
Pip
pip install gluonfr
Ecosistema
Ahora, exploremos las completas bibliotecas, paquetes y marcos de MXNet:
Entrenador RL
Coach, un marco de aprendizaje por refuerzo de Python (RL) creado por el laboratorio de inteligencia artificial de Intel. Permite una fácil experimentación con algoritmos RL de última generación. Coach RL admite Apache MXNet como back-end y permite la integración simple de un nuevo entorno para resolver.
Con el fin de ampliar y reutilizar fácilmente los componentes existentes, Coach RL desacopló muy bien los componentes básicos de aprendizaje por refuerzo, como algoritmos, entornos, arquitecturas NN, políticas de exploración.
A continuación se muestran los agentes y los algoritmos compatibles con el marco Coach RL:
Agentes de optimización de valor
Red Q profunda (DQN)
Red de doble profundidad Q (DDQN)
Red Q de duelo
Montecarlo mixto (MMC)
Aprendizaje con ventajas persistentes (PAL)
Red categórica profunda Q (C51)
Red Q profunda de regresión cuantílica (QR-DQN)
Aprendizaje N-Step Q
Control episódico neural (NEC)
Funciones de ventaja normalizadas (NAF)
Rainbow
Agentes de optimización de políticas
Gradientes de política (PG)
Actor crítico de ventaja asincrónica (A3C)
Gradientes de política deterministas profundos (DDPG)
Optimización de políticas próximas (PPO)
Optimización de política proximal recortada (CPPO)
Estimación de la ventaja generalizada (GAE)
Ejemplo de actor crítico eficiente con repetición de experiencias (ACER)
Actor crítico suave (SAC)
Gradiente de política determinista profundo retardado gemelo (TD3)
Agentes Generales
Predicción directa del futuro (DFP)
Agentes de aprendizaje de imitación
Clonación conductual (BC)
Aprendizaje de imitación condicional
Agentes de aprendizaje de refuerzo jerárquico
Actor crítico jerárquico (HAC)
Biblioteca de gráficos profundos
Deep Graph Library (DGL), desarrollada por los equipos de NYU y AWS, Shanghai, es un paquete de Python que proporciona implementaciones sencillas de Graph Neural Networks (GNN) sobre MXNet. También proporciona una implementación fácil de GNN además de otras bibliotecas importantes de aprendizaje profundo existentes como PyTorch, Gluon, etc.
Deep Graph Library es un software gratuito. Está disponible en todas las distribuciones de Linux posteriores a Ubuntu 16.04, macOS X y Windows 7 o posterior. También requiere la versión Python 3.5 o posterior.
Las siguientes son las características de DGL:
No Migration cost - No hay ningún costo de migración por usar DGL, ya que está construido sobre los populares frameworks DL existentes.
Message Passing- DGL proporciona el paso de mensajes y tiene un control versátil sobre él. El paso de mensajes abarca desde operaciones de bajo nivel, como el envío a lo largo de los bordes seleccionados, hasta el control de alto nivel, como las actualizaciones de funciones en todo el gráfico.
Smooth Learning Curve - Es bastante fácil aprender y usar DGL ya que las potentes funciones definidas por el usuario son flexibles y fáciles de usar.
Transparent Speed Optimization - DGL proporciona una optimización transparente de la velocidad mediante el procesamiento por lotes automático de cálculos y la multiplicación de matrices dispersas.
High performance - Para lograr la máxima eficiencia, DGL agrupa automáticamente el entrenamiento de DNN (redes neuronales profundas) en uno o varios gráficos juntos.
Easy & friendly interface - DGL nos proporciona interfaces fáciles y amigables para el acceso a las funciones de borde, así como la manipulación de la estructura del gráfico.
InsightFace
InsightFace, un kit de herramientas de aprendizaje profundo para el análisis facial que proporciona la implementación del algoritmo de análisis facial SOTA (estado de la técnica) en visión artificial con tecnología MXNet. Proporciona:
Gran conjunto de modelos pre-entrenados de alta calidad.
Guiones de capacitación de última generación (SOTA).
InsightFace es fácil de optimizar. Podemos implementarlo sin retener un marco DL pesado.
Proporciona API cuidadosamente diseñadas que reducen en gran medida la complejidad de la implementación.
Bloques de construcción para definir su propio modelo.
Podemos instalar InsightFace usando pip de la siguiente manera:
pip install --upgrade insightface
Tenga en cuenta que antes de instalar InsightFace, instale el paquete MXNet correcto de acuerdo con la configuración de su sistema.
Keras-MXNet
Como sabemos que Keras es una API de red neuronal (NN) de alto nivel escrita en Python, Keras-MXNet nos proporciona un soporte de backend para Keras. Puede ejecutarse sobre un marco Apache MXNet DL escalable y de alto rendimiento.
Las características de Keras-MXNet se mencionan a continuación:
Permite a los usuarios crear prototipos de forma fácil, fluida y rápida. Todo sucede gracias a la facilidad de uso, la modularidad y la extensibilidad.
Admite tanto CNN (redes neuronales convolucionales) como RNN (redes neuronales recurrentes), así como la combinación de ambas.
Funciona sin problemas tanto en la Unidad de procesamiento central (CPU) como en la Unidad de procesamiento gráfico (GPU).
Puede ejecutarse en una o varias GPU.
Para trabajar con este backend, primero debe instalar keras-mxnet de la siguiente manera:
pip install keras-mxnet
Ahora, si está utilizando GPU, instale MXNet con soporte CUDA 9 de la siguiente manera:
pip install mxnet-cu90
Pero si está utilizando solo CPU, instale MXNet básico de la siguiente manera:
pip install mxnet
MXBoard
MXBoard es una herramienta de registro, escrita en Python, que se utiliza para registrar marcos de datos MXNet y mostrarlos en TensorBoard. En otras palabras, MXBoard está destinado a seguir la API tensorboard-pytorch. Admite la mayoría de los tipos de datos de TensorBoard.
Algunos de ellos se mencionan a continuación:
Graph
Scalar
Histogram
Embedding
Image
Text
Audio
Curva de recuperación de precisión
MXFusion
MXFusion es una biblioteca de programación probabilística modular con aprendizaje profundo. MXFusion nos permite aprovechar al máximo la modularidad, que es una característica clave de las bibliotecas de aprendizaje profundo, para la programación probabilística. Es fácil de usar y proporciona a los usuarios una interfaz conveniente para diseñar modelos probabilísticos y aplicarlos a problemas del mundo real.
MXFusion está verificado en Python versión 3.4 y más en MacOS y Linux OS. Para instalar MXFusion, primero debemos instalar las siguientes dependencias:
MXNet> = 1.3
Redx> = 2.1
Con la ayuda del siguiente comando pip, puede instalar MXFusion -
pip install mxfusion
TVM
Apache TVM, una pila de compiladores de aprendizaje profundo de extremo a extremo de código abierto para backends de hardware como CPU, GPU y aceleradores especializados, tiene como objetivo llenar la brecha entre los marcos de aprendizaje profundo centrados en la productividad y los backends de hardware orientados al rendimiento. . Con la última versión MXNet 1.6.0, los usuarios pueden aprovechar Apache (incubando) TVM para implementar núcleos de operador de alto rendimiento en el lenguaje de programación Python.
Apache TVM en realidad comenzó como un proyecto de investigación en el grupo SAMPL de Paul G. Allen School of Computer Science & Engineering, Universidad de Washington y ahora es un esfuerzo en incubación en The Apache Software Foundation (ASF) impulsado por un OSC ( comunidad de código abierto) que involucra a múltiples industrias e instituciones académicas bajo el método Apache.
Las siguientes son las características principales de Apache (incubando) TVM:
Simplifica el antiguo proceso de desarrollo basado en C ++.
Permite compartir la misma implementación en múltiples backends de hardware como CPU, GPU, etc.
TVM proporciona compilación de modelos DL en varios marcos como Kears, MXNet, PyTorch, Tensorflow, CoreML, DarkNet en módulos mínimos implementables en diversos backends de hardware.
También nos proporciona la infraestructura para generar y optimizar automáticamente operadores de tensores con un mejor rendimiento.
XFer
Xfer, un marco de aprendizaje por transferencia, está escrito en Python. Básicamente, toma un modelo MXNet y entrena un metamodelo o también modifica el modelo para un nuevo conjunto de datos de destino.
En palabras simples, Xfer es una biblioteca de Python que permite a los usuarios transferir de manera rápida y fácil el conocimiento almacenado en DNN (redes neuronales profundas).
Xfer se puede utilizar -
Para la clasificación de datos de formato numérico arbitrario.
A los casos habituales de imágenes o datos de texto.
Como una canalización que genera spam desde la extracción de características hasta el entrenamiento de un reutilizador (un objeto que realiza la clasificación en la tarea de destino).
Las siguientes son las características de Xfer:
Eficiencia de recursos
Eficiencia de datos
Fácil acceso a redes neuronales
Modelado de incertidumbre
Creación rápida de prototipos
Utilidades para la extracción de características de NN