Deep Learning Toolbox
Concevoir, entraîner et analyser des réseaux de Deep Learning
Deep Learning Toolbox™ offre un environnement permettant de concevoir et d'implémenter des réseaux de neurones profonds avec des algorithmes, des modèles pré-entraînés et des applications. Vous pouvez utiliser des réseaux de neurones à convolution (« ConvNets » ou CNN) et des réseaux LSTM (Long Short-Term Memory) pour effectuer des régressions et des classifications sur des données textuelles, images et de séries temporelles. Vous pouvez créer des architectures de réseau comme des réseaux antagonistes génératifs (GAN) et des réseaux siamois en utilisant la différentiation automatique, des boucles d'apprentissage personnalisées et des pondérations partagées. Avec l'application Deep Network Designer, vous pouvez concevoir, analyser et entraîner des réseaux via une interface graphique. L'application Experiment Manager vous permet de gérer plusieurs expériences de Deep Learning, d'assurer le suivi des paramètres d'apprentissage, d'analyser les résultats et de comparer le code de plusieurs expériences. Vous pouvez visualiser les activations de couches et contrôler la progression de l'apprentissage sous forme graphique.
Vous pouvez échanger des modèles avec TensorFlow™ et PyTorch grâce au format ONNX et importer des modèles depuis TensorFlow-Keras et Caffe. La toolbox supporte l'apprentissage par transfert avec de nombreux modèles pré-entraînés, parmi lesquels DarkNet-53, ResNet-50, NASNet et SqueezeNet.
Vous pouvez accélérer le processus d'apprentissage sur un poste de travail à un ou plusieurs GPU (grâce à Parallel Computing Toolbox™), ou étendre votre utilisation à des clusters et des clouds, tels que les instances GPU Amazon EC2® et NVIDIA® GPU Cloud (avec MATLAB Parallel Server™).
En savoir plus :
Réseaux de neurones à convolution (CNN)
Apprenez des motifs dans des images afin de reconnaître des objets, des visages et des scènes. Créez et entraînez des réseaux de neurones à convolution (CNN) pour effectuer des opérations d'extraction de caractéristiques et de reconnaissance d'images.
Réseaux LSTM (Long Short-Term Memory)
Apprenez les dépendances long-terme dans des données séquentielles, comme par exemple les données issues d'un signal, audio, texte et de séries temporelles. Créez et entraînez des réseaux LSTM (Long Short-Term Memory) pour effectuer des opérations de classification et de régression.
Architectures réseau
Utilisez différentes structures de réseau telles que les architectures DAG (Directed Acyclic Graph) et récurrentes pour créer votre réseau de Deep Learning. Créez des architectures de réseau avancées comme des réseaux antagonistes génératifs (GAN) et des réseaux siamois en utilisant des boucles d'apprentissage personnalisées, des pondérations partagées et la différenciation automatique.
Concevoir des réseaux de Deep Learning
Créez et entraînez un réseau profond à partir de zéro avec l'application Deep Network Designer. Importez un modèle pré-entraîné, visualisez la structure du réseau, modifiez les couches, réglez les paramètres et entraînez le modèle.
Analyser des réseaux de Deep Learning
Analysez votre architecture de réseau afin de détecter et déboguer les erreurs et les problèmes de compatibilité avant la phase d'apprentissage. Visualisez la topologie du réseau et consultez des détails tels que les paramètres et activations entraînables.
Gérer des expériences de Deep Learning
Gérez plusieurs expériences de Deep Learning avec l'application Experiment Manager. Assurez le suivi des paramètres d'apprentissage, analysez les résultats et comparez le code de plusieurs expériences. Utilisez des outils de visualisation comme des tracés d'apprentissage et des matrices de confusion, triez et filtrez les résultats d’expériences, et définissez des métriques personnalisées pour évaluer les modèles entraînés.
Apprentissage par transfert
Accédez à des réseaux pré-entraînés et utilisez-les comme point de départ pour apprendre une nouvelle tâche. Exécutez un apprentissage par transfert afin d'utiliser les caractéristiques apprises dans le réseau pour une tâche spécifique.
Modèles pré-entraînés
Accédez aux réseaux pré-entraînés les plus récents issus de la recherche avec une seule ligne de code. Importez des modèles pré-entraînés, y compris DarkNet-53, ResNet-50, SqueezeNet, NASNet et Inception-v3.
Progression de l'apprentissage
Consultez la progression de l'apprentissage à chaque itération à l'aide du tracé de différentes métriques. Affichez la comparaison entre les métriques de validation et les métriques d'apprentissage pour voir si un surajustement a lieu au niveau du réseau.
Activations d'un réseau
Extrayez les activations correspondant à une couche, visualisez les caractéristiques apprises et entraînez un classificateur de Machine Learning à l'aide des activations. Utilisez l'approche Grad-CAM pour comprendre pourquoi un réseau de Deep Learning prend ses décisions de classification.
Conversion ONNX
Importez et exportez des modèles ONNX dans MATLAB® pour assurer l'interopérabilité avec d'autres environnements de Deep Learning. ONNX permet d'entraîner des modèles dans un environnement et de les transférer dans un autre pour inférence. Avec GPU Coder™ , générez du code NVIDIA® CUDA® optimisé et utilisez MATLAB Coder™ pour générer du code C++ pour le modèle importé.
Importer depuis Tensorflow-Keras
Importez des modèles à partir de TensorFlow-Keras dans MATLAB pour des opérations d'inférence et d'apprentissage. Avec GPU Coder, générez du code CUDA optimisé et utilisez MATLAB Coder pour générer du code C++ pour le modèle importé.
Importer depuis Caffe
Importez des modèles à partir de Caffe Model Zoo dans MATLAB pour des opérations d'inférence et d'apprentissage.
Accélération GPU
Accélérez l'apprentissage et les inférences du Deep Learning avec les GPU NVIDIA haute performance. Effectuez l'apprentissage sur un poste de travail à GPU unique ou déployez l'apprentissage sur plusieurs GPU avec des systèmes DGX dans des datacenters ou sur le cloud. Vous pouvez utiliser MATLAB avec Parallel Computing Toolbox et la plupart des GPU NVIDIA compatibles CUDA dotés d'une capacité de calcul 3.0 ou supérieure.
Accélération cloud
Accélérez l'apprentissage du Deep Learning à l'aide d'instances dans le cloud. Pour obtenir les meilleurs résultats, utilisez des instances GPU haute performance.
Calcul distribué
Effectuez l'apprentissage du Deep Learning sur plusieurs processeurs et serveurs sur un réseau avec MATLAB Parallel Server.
Simulation
Simulez et générez du code pour des réseaux de Deep Learning dans Simulink®.Utilisez AlexNet, GoogLeNet ou d'autres modèles pré-entraînés. Vous pouvez également simuler des réseaux créés en partant de zéro ou via l’apprentissage par transfert, notamment les réseaux LSTM. Accélérez l'exécution de votre réseau de Deep Learning dans Simulink avec GPU Coder et les GPU NVIDIA. Simulez des réseaux de Deep Learning avec les composants de contrôle, de traitement du signal et de fusion de capteurs pour évaluer l'impact de votre modèle Deep Learning sur les performances du système.
Génération de code
Utilisez GPU Coder pour générer du code CUDA optimisé à partir de code MATLAB pour le Deep Learning, la vision embarquée et les systèmes autonomes. Générez du code C++ avec MATLAB Coder pour déployer des réseaux de Deep Learning sur des processeurs Intel® Xeon® et ARM® Cortex®-A. Automatisez la compilation croisée et le déploiement du code généré sur les plateformes NVIDIA Jetson™ et DRIVE™, et sur des cartes Raspberry Pi™.
Quantification du Deep Learning
Quantifiez votre réseau de Deep Learning en INT8 et analysez les compromis sur la précision de la quantification des poids et des biais des couches sélectionnées en utilisant le support package Model Quantization Library.
Déployer des applications autonomes
MATLAB Compiler™ et MATLAB Compiler SDK™ vous permettent de déployer des réseaux entraînés en tant que bibliothèques partagées C++, assemblages Microsoft®.NET, classes Java® et packages Python® à partir de programmes MATLAB avec des modèles de Deep Learning.
Réseaux supervisés
Entraînez des réseaux de neurones peu profonds supervisés pour modéliser et contrôler des systèmes dynamiques, classifier des données bruitées et prévoir des événements futurs.
Réseaux non supervisés
Détectez les relations entre les données et définissez automatiquement des modèles de classification en laissant le réseau peu profond s'ajuster continuellement aux nouvelles entrées. Utilisez des réseaux non supervisés, auto-organisés, ainsi que des couches cachées et des cartes auto-organisatrices.
Auto-encodeurs empilés
Effectuez une transformation de caractéristiques non supervisée en extrayant des caractéristiques de faible dimension à partir de votre jeu de données à l'aide d'auto-encodeurs. Vous pouvez également utiliser des auto-encodeurs empilés pour l'apprentissage supervisé en entraînant et empilant plusieurs encodeurs.
Blocs Image Classification et Network Prediction
Simulez et générez du code pour des modèles de Deep Learning dans Simulink
Application Experiment Manager
Entraînez plusieurs réseaux de Deep Learning en parallèle et réglez les hyperparamètres à l’aide de l’optimisation bayésienne
Application Deep Network Designer
Entraînez des réseaux pour la classification d’images, la segmentation sémantique, des entrées multiples, hors mémoire, la régression d’image à image et bien d’autres workflow
Réseaux perceptron multicouches
Entraînez des réseaux avec des entrées contenant des caractéristiques numériques dans des tables et des caractéristiques combinées à des images
Boucles d’apprentissage personnalisées
Créez et prétraitez automatiquement des mini-lots de données
Consultez les notes de version pour en savoir plus sur ces fonctionnalités et les fonctions correspondantes.
MATLAB pour le Deep Learning
Quelques lignes de code MATLAB suffisent pour appliquer des techniques de Deep Learning à vos projets, que ce soit pour la conception d'algorithmes, la préparation et la labellisation des données ou la génération et le déploiement de code sur des systèmes embarqués.