Comience con Apache MXNet en Amazon Linux
Comience con Apache MXNet en Ubuntu

Apache MXNet es un marco de aprendizaje profundo liviano, flexible y con un alto nivel de escalabilidad compatible con modelos de aprendizaje profundo vanguardistas, incluidas las redes neurales convolucionales (CNN) y las redes de memoria a corto y largo plazo (LSTM). El marco nació en el ámbito académico y ocurrió gracias a la colaboración y la contribución de investigadores de varias universidades importantes. Se diseñó para destacarse en la comprensión y el procesamiento informáticos de lenguaje, voz e imagen, en modelos generativos, redes neuronales simultáneas y redes neuronales recurrentes.

MXNet le permite definir, entrenar e implementar redes en una amplia gama de casos de uso desde infraestructura en la nube masiva a dispositivos móviles y conectados. Brinda un entorno muy flexible que admite muchos lenguajes comunes y la capacidad para utilizar constructos de programación simbólica e imperativa. Además, MXNet es muy liviano. Esto le permite ajustar su escala a varios GPU y máquinas de una manera muy eficiente, lo que resulta beneficioso cuando se realizan entrenamientos en grandes conjuntos de datos en la nube.

Puede comenzar a utilizar Apache MXNet en AWS fácilmente mediante el lanzamiento de la AMI de aprendizaje profundo de AWS, disponible para Amazon Linux y Ubuntu.

Colabore con el Proyecto Apache MXNet

Participe en GitHub

Consiga código de muestra, notebooks y contenido de tutoriales en la página del proyecto GitHub.

GitHub-Mark-120px-plus
CMU
Sigopt
logo-intel
Nvidia
Sencillez

Programación

Simplifique las definiciones de red y utilice lenguajes que ya conozca

Durabilidad

Portabilidad

Uso eficiente de memoria para permitirles a los modelos ejecutarse en una amplia gama de dispositivos y plataformas

Escalable

 Escalabilidad

Capacidad para ajustar su escala a varias GPU y hosts para entrenar rápidamente modelos sofisticados de gran tamaño

Con Apache MXNet, tiene la capacidad para combinar lenguajes simbólicos e imperativos. De hecho, el nombre "MXNet" proviene de "mixed networks" (redes combinadas). Esto significa que puede manipular capas de redes con la optimización de ejecutores simbólicos junto con características flexibles de lenguajes imperativos como bucles de iteración y actualizaciones de parámetros. Debido a esta naturaleza combinada, MXNet ofrece un conjunto único de capacidades que facilitan el trabajo dentro de la naturaleza compleja y de múltiples capas de los modelos de aprendizaje profundo. 

importar mxnet como mx

a = mx.nd.zeros((100, 50))

b = mx.nd.ones((100, 50))

c = a + b

c += 1

print(c)

 

importar mxnet como mx

net = mx.symbol.Variable('data')

net = mx.symbol.FullyConnected(data=net, num_hidden=128)

net = mx.symbol.SoftmaxOutput(data=net)

texec = mx.module.Module(net)

texec.forward(data=c)

texec.backward()

Además, MXNet es compatible con un amplio conjunto de lenguajes de programación en el front end del marco, incluidos C++, JavaScript, Python, r, Matlab, Julia, Scala y Go. Esto le permite usar todos los lenguajes que ya conoce para comenzar a ejecutar su recurso de aprendizaje profundo inmediatamente. En el backend, su código siempre se compila en C++ para que logre un rendimiento estable independientemente del lenguaje que elija usar en el front end. 

c-plus-plus-logo-100px
javascript-logo-100px
python-logo-100px
r-logo-100px
Matlab
julia-logo-100px
scala-logo-100px
go-logo-100px

A medida que las aplicaciones de inteligencia artificial se incorporan de manera progresiva a nuestra vida diaria, es cada vez más importante que se puedan implementar en una amplia variedad de dispositivos. Esto es especialmente cierto cuando la IA se implementa en dispositivos móviles y conectados en el borde, donde el almacenamiento es escaso.

Los modelos de Apache MXNet entran en volúmenes muy pequeños de memoria. Por ejemplo, una red de mil capas necesita menos de 4 GB de almacenamiento. El marco también se puede transferir entre plataformas. La biblioteca principal (con todas las dependencias) entre en un único archivo fuente de C++ y se puede compilar para iOS y Android. De hecho, si se usa JavaScript, se puede ejecutar en un navegador. Esta flexibilidad significa que puede implementar sus modelos en un conjunto muy diverso de casos de uso para llegar al conjunto más amplio posible de usuarios. 

portability-cloud

Nube

portability-mobile

Soluciones móviles

portability-browser

Navegador

portability-devices

Dispositivos conectados

Apache MXNet está creado en un programador de dependencias dinámico que analiza las dependencias de los datos en código serial y paraleliza automáticamente operaciones declarativas e imperativas sobre la marcha. Por encima de este, una capa de optimización de gráficos hace que la ejecución declarativa sea rápida y eficaz en relación con el uso de memoria.

Debido a esta autoparalelización, MXNet logra ajustar su escala de manera muy eficiente. Por ejemplo, entrenamos un algoritmo de análisis de imágenes conocido, Inception v3, con un número mayor de instancias respaldadas por GPU EC2 P2 para comparar la eficiencia de MXNet.

mxnet-scale-story-1

La línea roja significa eficiencia perfecta, donde se obtiene el doble de velocidad para el doble de GPU. El rendimiento de MXNet subió casi el mismo índice que el número de GPU utilizadas. En una única instancia de 16 GPU, Apache MXNet puede lograr un 91% de eficiencia.

Sin embargo, en redes grandes, usted tal vez desee ajustar la escala en clústeres de instancias P2. En la ejecución de la misma comparación en este caso se observa únicamente una leve disminución de eficiencia a medida que el número de GPU aumenta exponencialmente.

mxnet-scale-story-2

Sin embargo, no se quede tan solo con lo que le decimos nosotros. Uno de los beneficios de la nube es que usted puede probar todo fácilmente con su propio código. Dejamos nuestra comparación disponible para todos en GitHub. Le aconsejamos que haga pruebas usted mismo para ver cómo funciona y que lo ejecute para obtener sus propios resultados. También puede usar nuestra plantilla de AWS CloudFormation para lograr rápidamente la capacidad que necesita.

Es fácil empezar a usar Apache MXNet en AWS si visita AWS Marketplace y lanza la AMI de aprendizaje profundo de AWS.

La AMI ofrece la versión estable más reciente de MXNet y muchas otras herramientas y marcos de aprendizaje profundo conocidos sin costo. Paga solo por el tiempo de EC2 que consume.