DISCONTINUACIÓN DEL PROYECTO. Intel ya no mantendrá este proyecto. Intel no proporcionará ni garantizará el desarrollo ni el soporte para este proyecto, incluidos, entre otros, mantenimiento, corrección de errores, nuevas versiones o actualizaciones. Intel ya no acepta parches para este proyecto. Si tiene una necesidad continua de utilizar este proyecto, está interesado en desarrollarlo de forma independiente o le gustaría mantener parches para la comunidad, cree su propia bifurcación del proyecto.
neon es el marco de aprendizaje profundo de referencia de Intel comprometido con el mejor rendimiento en todo el hardware. Diseñado para facilidad de uso y extensibilidad.
Para una iteración rápida y exploración de modelos, neon tiene el rendimiento más rápido entre las bibliotecas de aprendizaje profundo (velocidad 2x de cuDNNv4, consulte los puntos de referencia).
Usamos neón internamente en Intel Nervana para resolver los problemas de nuestros clientes en muchos dominios. Estamos contratando para varios roles. ¡Aplica aquí!
Vea las nuevas funciones en nuestra última versión. Queremos resaltar que neon v2.0.0+ se ha optimizado para un rendimiento mucho mejor en las CPU al habilitar Intel Math Kernel Library (MKL). El componente DNN (Deep Neural Networks) de MKL que utiliza Neon se proporciona de forma gratuita y se descarga automáticamente como parte de la instalación de Neon.
En una máquina Mac OSX o Linux, ingrese lo siguiente para descargar e instalar neon (los usuarios de conda ven la guía) y utilícelo para entrenar su primer perceptrón multicapa. Para forzar una instalación de python2 o python3, reemplace make
a continuación con make python2
o make python3
.
git clone https://github.com/NervanaSystems/neon.git
cd neon
make
. .venv/bin/activate
A partir de neon v2.2.0, la rama maestra de neon se actualizará semanalmente con el trabajo en progreso hacia la próxima versión. Consulte una etiqueta de versión (por ejemplo, "git checkout v2.2.0") para obtener una versión estable. O simplemente consulte la etiqueta de versión "última" para obtener la última versión estable (es decir, "git checkout Latest")
Desde la versión 2.4.0, volvimos a habilitar la instalación de pip. Neon se puede instalar usando el nombre del paquete nervananeon.
pip install nervananeon
Cabe señalar que Aeon debe instalarse por separado. La última versión v2.6.0 utiliza aeon v1.3.0.
Advertencia
Entre neon v2.1.0 y v2.2.0, se cambió el formato del archivo de manifiesto de aeon. Al actualizar desde neon <v2.2.0, los manifiestos deben volver a crearse mediante scripts de ingesta (en la carpeta de ejemplos) o actualizarse mediante este script.
python examples/mnist_mlp.py
El backend de la GPU se selecciona de forma predeterminada, por lo que el comando anterior es equivalente a si se encuentra un recurso de GPU compatible en el sistema:
python examples/mnist_mlp.py -b gpu
Cuando no hay GPU disponible, el backend de CPU optimizado (MKL) ahora se selecciona de forma predeterminada a partir de neon v2.1.0, lo que significa que el comando anterior ahora equivale a:
python examples/mnist_mlp.py -b mkl
Si está interesado en comparar el backend mkl predeterminado con el backend de CPU no optimizado, use el siguiente comando:
python examples/mnist_mlp.py -b cpu
Alternativamente, se puede utilizar un archivo yaml para ejecutar un ejemplo.
neon examples/mnist_mlp.yaml
Para seleccionar un backend específico en un archivo yaml, agregue o modifique una línea que contenga backend: mkl
para habilitar el backend mkl, o backend: cpu
para habilitar el backend de la CPU. El backend de la gpu se selecciona de forma predeterminada si hay una GPU disponible.
La biblioteca Intel Math Kernel aprovecha las capacidades de paralelización y vectorización de los sistemas Intel Xeon y Xeon Phi. Cuando el hyperthreading está habilitado en el sistema, recomendamos la siguiente configuración KMP_AFFINITY para garantizar que los subprocesos paralelos estén asignados 1:1 a los núcleos físicos disponibles.
export OMP_NUM_THREADS= < Number of Physical Cores >
export KMP_AFFINITY=compact,1,0,granularity=fine
o
export OMP_NUM_THREADS= < Number of Physical Cores >
export KMP_AFFINITY=verbose,granularity=fine,proclist=[0- < Number of Physical Cores > ],explicit
Para obtener más información sobre KMP_AFFINITY, consulte aquí. Alentamos a los usuarios a que intenten y establezcan sus propias configuraciones de mejor rendimiento.
La documentación completa para neón está disponible aquí. Algunos puntos de partida útiles son:
Para cualquier error o solicitud de funciones, por favor:
Para otras preguntas y debates, publique un mensaje en el grupo de Google de usuarios de neón.
Estamos lanzando neon bajo una licencia Apache 2.0 de código abierto. Le invitamos a contactarnos con sus casos de uso.