ARRÊT DU PROJET. Ce projet ne sera plus maintenu par Intel. Intel ne fournira ni ne garantira le développement ou le support de ce projet, y compris, mais sans s'y limiter, la maintenance, les corrections de bogues, les nouvelles versions ou mises à jour. Les correctifs de ce projet ne sont plus acceptés par Intel. Si vous avez un besoin continu d'utiliser ce projet, si vous êtes intéressé à le développer de manière indépendante ou si vous souhaitez maintenir des correctifs pour la communauté, veuillez créer votre propre fork du projet.
neon est le framework d'apprentissage profond de référence d'Intel qui s'engage à offrir les meilleures performances sur tout le matériel. Conçu pour la facilité d’utilisation et l’extensibilité.
Pour une itération et une exploration rapides des modèles, neon offre les performances les plus rapides parmi les bibliothèques d'apprentissage en profondeur (vitesse 2x de cuDNNv4, voir les tests de performance).
Nous utilisons le néon en interne chez Intel Nervana pour résoudre les problèmes de nos clients dans de nombreux domaines. Nous recrutons sur plusieurs postes. Postulez ici !
Découvrez les nouvelles fonctionnalités de notre dernière version. Nous souhaitons souligner que neon v2.0.0+ a été optimisé pour de bien meilleures performances sur les processeurs en activant la bibliothèque Intel Math Kernel (MKL). Le composant DNN (Deep Neural Networks) de MKL utilisé par neon est fourni gratuitement et téléchargé automatiquement dans le cadre de l'installation de neon.
Sur une machine Mac OSX ou Linux, saisissez ce qui suit pour télécharger et installer Neon (les utilisateurs de Conda voient le guide) et utilisez-le pour entraîner votre premier perceptron multicouche. Pour forcer une installation python2 ou python3, remplacez make
ci-dessous par make python2
ou make python3
.
git clone https://github.com/NervanaSystems/neon.git
cd neon
make
. .venv/bin/activate
À partir de neon v2.2.0, la branche principale de neon sera mise à jour chaque semaine avec des travaux en cours vers la prochaine version. Consultez une balise de version (par exemple, "git checkout v2.2.0") pour une version stable. Ou consultez simplement la balise de version « dernière » pour obtenir la dernière version stable (c'est-à-dire « git checkout Latest »)
À partir de la version 2.4.0, nous avons réactivé l'installation de pip. Neon peut être installé en utilisant le nom de package nervananeon.
pip install nervananeon
Il est à noter qu'aeon doit être installé séparément. La dernière version v2.6.0 utilise aeon v1.3.0.
Avertissement
Entre neon v2.1.0 et v2.2.0, le format du fichier manifeste aeon a été modifié. Lors de la mise à jour à partir de neon < v2.2.0, les manifestes doivent être recréés à l'aide de scripts d'ingestion (dans le dossier d'exemples) ou mis à jour à l'aide de ce script.
python examples/mnist_mlp.py
Le backend GPU est sélectionné par défaut, donc la commande ci-dessus est équivalente à si une ressource GPU compatible est trouvée sur le système :
python examples/mnist_mlp.py -b gpu
Lorsqu'aucun GPU n'est disponible, le backend CPU optimisé (MKL) est désormais sélectionné par défaut à partir de neon v2.1.0, ce qui signifie que la commande ci-dessus est désormais équivalente à :
python examples/mnist_mlp.py -b mkl
Si vous souhaitez comparer le backend mkl par défaut avec le backend CPU non optimisé, utilisez la commande suivante :
python examples/mnist_mlp.py -b cpu
Alternativement, un fichier yaml peut être utilisé pour exécuter un exemple.
neon examples/mnist_mlp.yaml
Pour sélectionner un backend spécifique dans un fichier yaml, ajoutez ou modifiez une ligne contenant backend: mkl
pour activer le backend mkl, ou backend: cpu
pour activer le backend cpu. Le backend GPU est sélectionné par défaut si un GPU est disponible.
La bibliothèque Intel Math Kernel tire parti des capacités de parallélisation et de vectorisation des systèmes Intel Xeon et Xeon Phi. Lorsque l'hyperthreading est activé sur le système, nous recommandons le paramètre KMP_AFFINITY suivant pour garantir que les threads parallèles sont mappés 1:1 aux cœurs physiques disponibles.
export OMP_NUM_THREADS= < Number of Physical Cores >
export KMP_AFFINITY=compact,1,0,granularity=fine
ou
export OMP_NUM_THREADS= < Number of Physical Cores >
export KMP_AFFINITY=verbose,granularity=fine,proclist=[0- < Number of Physical Cores > ],explicit
Pour plus d'informations sur KMP_AFFINITY, veuillez vérifier ici. Nous encourageons les utilisateurs à essayer et à établir leurs propres paramètres de performances optimales.
La documentation complète sur le néon est disponible ici. Voici quelques points de départ utiles :
Pour tout bug ou demande de fonctionnalité, veuillez :
Pour d'autres questions et discussions, veuillez poster un message au groupe Google des utilisateurs de néon
Nous publions Neon sous une licence open source Apache 2.0. Nous vous invitons à nous contacter avec vos cas d’utilisation.