Table des matières[Cacher][Montrer]
Un cadre d'apprentissage en profondeur consiste en une combinaison d'interfaces, de bibliothèques et d'outils pour définir et former des modèles d'apprentissage automatique rapidement et avec précision.
Étant donné que l'apprentissage en profondeur utilise une grande quantité de données non structurées et non textuelles, vous avez besoin d'un cadre qui contrôle l'interaction entre les « couches » et accélère le développement de modèles en apprenant à partir des données d'entrée et en prenant des décisions autonomes.
Si vous souhaitez en savoir plus sur l'apprentissage en profondeur en 2021, envisagez d'utiliser l'un des cadres indiqués ci-dessous. N'oubliez pas d'en choisir un qui vous aidera à atteindre vos objectifs et votre vision.
1. TensorFlow
Quand on parle d'apprentissage en profondeur, TensorFlow est souvent le premier cadre mentionné. Très populaire, ce framework n'est pas seulement utilisé par Google - l'entreprise responsable de sa création - mais aussi par d'autres sociétés comme Dropbox, eBay, Airbnb, Nvidia, et tant d'autres.
TensorFlow peut être utilisé pour développer des API de haut et de bas niveau, vous permettant d'exécuter des applications sur presque tous les types d'appareils. Bien que Python soit son langage principal, l'interface de Tensoflow peut être consultée et contrôlée à l'aide d'autres langages de programmation tels que C++, Java, Julia et JavaScript.
Étant open-source, TensorFlow vous permet de faire plusieurs intégrations avec d'autres API et d'obtenir une assistance et des mises à jour rapides de la part de la communauté. Sa dépendance à l'égard des « graphes statiques » pour le calcul vous permet d'effectuer des calculs immédiats ou d'enregistrer des opérations pour un accès ultérieur. Ces raisons, ajoutées à la possibilité que vous puissiez "observer" le développement de votre réseau de neurones via TensorBoard, font de TensorFlow le framework le plus populaire pour l'apprentissage en profondeur.
Fonctionnalités clés
- Open source
- Flexibilité
- Débogage rapide
2. PyTorch
PyTorch est un framework développé par Facebook pour supporter le fonctionnement de ses services. Depuis qu'il est devenu open-source, ce framework a été utilisé par des entreprises autres que Facebook, telles que Salesforce et Udacity.
Ce cadre exploite des graphiques mis à jour dynamiquement, vous permettant d'apporter des modifications à l'architecture de votre jeu de données au fur et à mesure que vous le traitez. Avec PyTorch, il est plus simple de développer et de former un réseau de neurones, même sans aucune expérience en apprentissage en profondeur.
Étant open source et basé sur Python, vous pouvez effectuer des intégrations simples et rapides à PyTorch. C'est aussi un cadre simple à apprendre, à utiliser et à déboguer. Si vous avez des questions, vous pouvez compter sur l'excellent support et les mises à jour des deux communautés - la communauté Python et la communauté PyTorch.
Fonctionnalités clés
- Facile à apprendre
- Prend en charge le GPU et le CPU
- Riche ensemble d'API pour étendre les bibliothèques
3. Apache MXNet
En raison de sa grande évolutivité, de ses hautes performances, de son dépannage rapide et de sa prise en charge avancée du GPU, ce framework a été créé par Apache pour être utilisé dans de grands projets industriels.
MXNet inclut l'interface Gluon qui permet aux développeurs de tous niveaux de se lancer dans l'apprentissage en profondeur sur le cloud, sur les appareils périphériques et sur les applications mobiles. En quelques lignes de code Gluon, vous pouvez construire une régression linéaire, des réseaux convolutifs et des LSTM récurrents pour détection d'objets, reconnaissance vocale, recommandation et personnalisation.
MXNet peut être utilisé sur divers appareils et est pris en charge par plusieurs langages de programmation tels que Java, R, JavaScript, Scala et Go. Bien que le nombre d'utilisateurs et de membres dans sa communauté soit faible, MXNet dispose d'une documentation bien écrite et d'un grand potentiel de croissance, en particulier maintenant qu'Amazon a sélectionné ce framework comme outil principal pour l'apprentissage automatique sur AWS.
Fonctionnalités clés
- 8 liaisons linguistiques
- Formation distribuée, prenant en charge les systèmes multi-CPU et multi-GPU
- Front-end hybride, permettant de basculer entre les modes impératif et symbolique
4. Boîte à outils cognitive Microsoft
Si vous envisagez de développer des applications ou des services qui s'exécutent sur Azure (services cloud de Microsoft), le Microsoft Cognitive Toolkit est le framework à sélectionner pour vos projets de deep learning. Ceci est open-source et pris en charge par des langages de programmation tels que Python, C++, C#, Java, entre autres. Ce framework est conçu pour « penser comme le cerveau humain », afin de pouvoir traiter de grandes quantités de données non structurées, tout en offrant une formation rapide et une architecture intuitive.
En sélectionnant ce framework – le même que derrière Skype, Xbox et Cortana – vous obtiendrez de bonnes performances de vos applications, une évolutivité et une intégration simple avec Azure. Cependant, par rapport à TensorFlow ou PyTorch, le nombre de membres de sa communauté et son support sont réduits.
La vidéo suivante offre une introduction complète et des exemples d'application :
Fonctionnalités clés
- Documentation claire
- Assistance de l'équipe Microsoft
- Visualisation graphique directe
5. Keras
Comme PyTorch, Keras est une bibliothèque basée sur Python pour les projets gourmands en données. L'API keras fonctionne à un niveau élevé et permet des intégrations avec des API de bas niveau telles que TensorFlow, Theano et Microsoft Cognitive Toolkit.
Certains avantages de l'utilisation de keras sont sa simplicité d'apprentissage - étant le cadre recommandé pour les débutants en apprentissage en profondeur ; sa rapidité de déploiement ; ayant un grand soutien de la communauté python et des communautés des autres frameworks avec lesquels il est intégré.
Keras contient diverses implémentations de éléments constitutifs des réseaux de neurones telles que les couches, les fonctions objectives, les fonctions d'activation et les optimiseurs mathématiques. Son code est hébergé sur GitHub et il existe des forums et un canal de support Slack. Outre la prise en charge de la norme les réseaux de neurones, Keras prend en charge les réseaux de neurones convolutifs et les réseaux de neurones récurrents.
Keras permet modèles d'apprentissage profond à générer sur smartphones sous iOS et Android, sur une machine virtuelle Java ou sur le web. Il permet également l'utilisation de la formation distribuée de modèles d'apprentissage en profondeur sur des clusters d'unités de traitement graphique (GPU) et d'unités de traitement tensorielles (TPU).
Fonctionnalités clés
- Modèles pré-formés
- Prise en charge de plusieurs back-ends
- Support communautaire convivial et important
6. Apple CoreML
Core ML a été développé par Apple pour prendre en charge son écosystème - IOS, Mac OS et iPad OS. Son API fonctionne à bas niveau, faisant bon usage des ressources du CPU et du GPU, ce qui permet aux modèles et aux applications créés de continuer à fonctionner même sans connexion Internet, ce qui réduit « l'empreinte mémoire » et la consommation d'énergie de l'appareil.
La façon dont Core ML accomplit cela n'est pas exactement en créant une autre bibliothèque d'apprentissage automatique optimisée pour fonctionner sur les iPhones/iPads. Au lieu de cela, Core ML ressemble plus à un compilateur qui prend les spécifications du modèle et les paramètres formés exprimés avec d'autres logiciels d'apprentissage automatique et les convertit en un fichier qui devient une ressource pour une application iOS. Cette conversion vers un modèle Core ML se produit pendant le développement de l'application, et non en temps réel lorsque l'application est utilisée, et est facilitée par la bibliothèque python coremltools.
Core ML offre des performances rapides avec une intégration facile de machine learning modèles en applications. Il prend en charge l'apprentissage en profondeur avec plus de 30 types de couches ainsi que des arbres de décision, des machines vectorielles de support et des méthodes de régression linéaire, tous construits sur des technologies de bas niveau telles que Metal et Accelerate.
Fonctionnalités clés
- Facile à intégrer dans les applications
- Utilisation optimale des ressources locales, ne nécessitant pas d'accès à Internet
- Confidentialité : les données ne doivent pas quitter l'appareil
7. ONNX
Le dernier framework de notre liste est ONNX. Ce framework est né d'une collaboration entre Microsoft et Facebook, dans le but de simplifier le processus de transfert et de construction de modèles entre différents frameworks, outils, runtimes et compilateurs.
ONNX définit un type de fichier commun qui peut s'exécuter sur plusieurs plates-formes, tout en tirant parti des avantages des API de bas niveau telles que celles de Microsoft Cognitive Toolkit, MXNet, Caffe et (à l'aide de convertisseurs) Tensorflow et Core ML. Le principe derrière ONNX est de former un modèle sur une pile et de l'implémenter en utilisant d'autres inférences et prédictions.
La LF AI Foundation, une sous-organisation de la Linux Foundation, est une organisation dédiée à la construction d'un écosystème pour soutenir open-source innovation dans l'intelligence artificielle (IA), l'apprentissage automatique (ML) et l'apprentissage profond (DL). Il a ajouté ONNX en tant que projet de niveau supérieur le 14 novembre 2019. Ce transfert d'ONNX sous l'égide de la LF AI Foundation a été considéré comme une étape importante dans l'établissement d'ONNX en tant que norme de format ouvert indépendante des fournisseurs.
Le zoo de modèles ONNX est une collection de modèles pré-formés en Deep Learning disponibles au format ONNX. Pour chaque modèle il y a Cahiers Jupyter pour la formation du modèle et la réalisation d'inférences avec le modèle formé. Les blocs-notes sont écrits en Python et contiennent des liens vers le ensemble de données d'entraînement et des références au document scientifique original décrivant l'architecture du modèle.
Fonctionnalités clés
- Interopérabilité du cadre
- Optimisation matérielle
Conclusion
Ceci est un résumé des meilleurs frameworks pour l'apprentissage en profondeur. Il existe plusieurs frameworks à cet effet, gratuits ou payants. Pour sélectionner le meilleur pour votre projet, sachez d'abord pour quelle plateforme vous développerez votre application.
Les frameworks généraux comme TensorFlow et Keras sont les meilleures options pour commencer. Mais si vous avez besoin d'utiliser des avantages spécifiques au système d'exploitation ou à l'appareil, alors Core ML et Microsoft Cognitive Toolkit pourraient être les meilleures options.
Il existe d'autres frameworks destinés aux appareils Android, à d'autres machines et à des fins spécifiques qui n'ont pas été mentionnés dans cette liste. Si ce dernier groupe vous intéresse, nous vous suggérons de rechercher leurs informations sur Google ou d'autres sites d'apprentissage automatique.
Soyez sympa! Laissez un commentaire