Main Content

La traduction de cette page n'est pas à jour. Cliquez ici pour voir la dernière version en anglais.

Deep Network Designer

Concevoir, visualiser et entraîner des réseaux de Deep Learning

Description

L’application Deep Network Designer vous permet de construire, visualiser, modifier et entraîner des réseaux de Deep Learning. Avec cette application, vous pouvez :

  • Construire, importer, modifier et combiner des réseaux.

  • Charger des réseaux préentraînés et les modifier pour l’apprentissage par transfert.

  • Afficher et modifier les propriétés des couches et ajouter de nouvelles couches et de nouvelles connexions.

  • Analyser le réseau pour vous assurer que son architecture est correctement définie et détecter les problèmes avant l’apprentissage.

  • Importer et visualiser des datastores et des images pour l'apprentissage et la validation.

  • Utiliser des méthodes d'augmentation sur les images d’apprentissage pour leur classification et visualiser la distribution des étiquettes de classe.

  • Entraîner des réseaux et surveiller l’apprentissage avec les tracés des métriques de précision, de perte (loss) et de validation.

  • Exporter des réseaux entraînés vers votre espace de travail ou Simulink®.

  • Générer du code MATLAB® pour la construction et l’apprentissage de réseaux et créer des expérimentations pour le réglage des hyperparamètres avec Experiment Manager.

Deep Network Designer app

Ouvrir l'application Deep Network Designer

  • Barre d’outils MATLAB : dans l’onglet Apps, dans la section Machine Learning and Deep Learning, cliquez sur l’icône de l’application.

  • Invite de commande MATLAB : saisissez deepNetworkDesigner.

Exemples

développer tout

Examinez un réseau préentraîné dans Deep Network Designer.

Ouvrez l’application et sélectionnez un réseau préentraîné. Vous pouvez également charger un réseau préentraîné en sélectionnant l’onglet Designer et en cliquant sur New. Si vous devez télécharger le réseau, cliquez sur Install pour ouvrir l'Add-On Explorer. Deep Network Designer dispose de réseaux préentraînés adaptés aux tâches de traitement des images et audio. Le chargement de réseaux audio préentraînés nécessite Audio Toolbox™.

Conseil

Pour commencer, choisissez un des réseaux de classification d’images les plus rapides, comme SqueezeNet ou GoogLeNet. Une fois que vous aurez compris quels paramètres fonctionnent bien, essayez un réseau plus précis, comme Inception-v3 ou ResNet, pour voir s'il améliore vos résultats. Pour plus d’informations sur la sélection d’un réseau préentraîné, veuillez consulter Pretrained Deep Neural Networks.

Deep Network Designer start page showing available networks

Dans le volet Designer, visualisez et explorez le réseau. Pour une liste des réseaux de classification d’images préentraînés et comment les comparer, veuillez consulter Pretrained Deep Neural Networks.

Deep Network Designer displaying a pretrained image classification network

Pour des informations sur la construction de réseaux avec Deep Network Designer, veuillez consulter Build Networks with Deep Network Designer.

Préparez un réseau pour l’apprentissage par transfert en l’éditant dans Deep Network Designer.

L’apprentissage par transfert consiste à prendre un réseau de Deep Learning préentraîné et à l’ajuster précisément pour apprendre une nouvelle tâche. Vous pouvez transférer rapidement les caractéristiques apprises vers une nouvelle tâche avec un nombre réduit d’images d’apprentissage. L’apprentissage par transfert est généralement beaucoup plus rapide et plus facile que l’apprentissage d’un réseau à partir de zéro. Pour utiliser un réseau préentraîné pour l’apprentissage par transfert, vous devez changer le nombre de classes pour correspondre à votre nouveau jeu de données.

Ouvrez Deep Network Designer avec SqueezeNet.

deepNetworkDesigner(squeezenet)

Afin de préparer le réseau pour l’apprentissage par transfert, remplacez la dernière couche entraînable et la couche de classification finale. Pour SqueezeNet, la dernière couche entraînable est une couche de convolution 2D nommée 'conv10'.

  • Faites glisser une nouvelle convolution2dLayer sur le canevas. Définissez la propriété FilterSize à 1,1 et la propriété NumFilters au nouveau nombre de classes.

  • Modifiez les taux d’apprentissage de sorte que l’apprentissage soit plus rapide dans la nouvelle couche que dans les couches transférées en augmentant les valeurs WeightLearnRateFactor et BiasLearnRateFactor.

  • Supprimez la dernière convolution2dLayer et connectez votre nouvelle couche à la place.

    Convolution 2-D layer selected in Deep Network Designer. FilterSize is set to 1,1 and NumFilters is set to 5.

Conseil

Pour la plupart des réseaux préentraînés (par exemple GoogLeNet), la dernière couche entraînable est la couche entièrement connectée. Afin de préparer le réseau pour l’apprentissage par transfert, remplacez la couche entièrement connectée par une nouvelle couche entièrement connectée et définissez la propriété OutputSize au nouveau nombre de classes. Vous trouverez un exemple dans Introduction au Deep Network Designer.

Puis supprimez la couche de sortie de classification. Faites ensuite glisser une nouvelle classificationLayer sur le canevas et connectez-la à la place. Les paramètres par défaut de la couche de sortie signifient que le réseau apprend le nombre de classes pendant l’apprentissage.

Classification layer selected in Deep Network Designer. OutputSize is set to auto.

Vérifiez votre réseau en cliquant sur Analyze dans l’onglet Designer. Le réseau est prêt pour l’apprentissage si Deep Learning Network Analyzer n’indique aucune erreur. Vous trouverez un exemple illustrant comment entraîner un réseau pour classer de nouvelles images dans Transfer Learning with Deep Network Designer.

Afin d’obtenir de l’aide pour comprendre et éditer les propriétés d’une couche, cliquez sur l’icône d’aide à côté du nom de la couche.

Dans le volet Designer, sélectionnez une couche pour afficher et éditer ses propriétés. Cliquez sur l’icône d’aide à côté du nom de la couche pour plus d’informations sur les propriétés de la couche.

Cross channel normalization layer selected in Deep Network Designer

Pour plus d’informations sur les propriétés d’une couche, veuillez consulter List of Deep Learning Layers.

Ajoutez des couches à un réseau depuis votre espace de travail dans Deep Network Designer.

Dans Deep Network Designer, vous pouvez construire un réseau en faisant glisser des couches prédéfinies depuis la Layer Library dans le volet Designer et en les connectant. Vous pouvez également ajouter des couches personnalisées à un réseau depuis votre espace de travail dans le volet Designer. Supposons que vous disposiez d’une couche personnalisée stockée dans la variable myCustomLayer.

  1. Cliquez sur New dans l'onglet Designer.

  2. Arrêtez-vous sur From Workspace et cliquez sur Import.

  3. Sélectionnez myCustomLayer et cliquez sur OK.

  4. Cliquez sur Add.

L’application ajoute la couche personnalisée en haut du volet Designer. Pour afficher la nouvelle couche, zoomez avec la souris ou cliquez sur Zoom in.

Connectez myCustomLayer au réseau dans le volet Designer. Vous trouverez un exemple illustrant comment construire un réseau avec une couche personnalisée dans Deep Network Designer dans Import Custom Layer into Deep Network Designer.

Vous pouvez également combiner des réseaux dans Deep Network Designer. Par exemple, vous pouvez créer un réseau de segmentation sémantique en combinant un réseau préentraîné et un sous-réseau décodeur.

Importez des données dans Deep Network Designer pour l’apprentissage.

Vous pouvez utiliser l’onglet Data de Deep Network Designer pour importer des données d’apprentissage et de validation. Deep Network Designer supporte l’importation d’images et d’objets du datastore. Sélectionnez une méthode d’importation en fonction du type de tâche.

TâcheType de donnéesMéthode d’importation de donnéesVisualisation d’un exemple
Classification d'images

Objet ImageDatastore ou un dossier avec des sous-dossiers contenant des images pour chaque classe. Les étiquettes de classe proviennent des noms des sous-dossiers.

Sélectionnez Import Data > Import Image Data.

Import Image Data dialog box

Vous pouvez sélectionner des options d’augmentation et spécifiez les données de validation dans la boîte de dialogue « Import Image Data ». Pour plus d’informations, veuillez consulter Import Data into Deep Network Designer.

Data tab of Deep Network Designer displaying a histogram of the class labels and a selection of random images from the imported data

Autres workflows étendus (entrée contenant des caractéristiques numériques, données hors mémoire, traitement d’images et traitement audio et de la parole)

Datastore.

Pour d’autres workflows étendus, utilisez un objet du datastore adapté. Par exemple, AugmentedImageDatastore, CombinedDatastore, pixelLabelImageDatastore (Computer Vision Toolbox), audioDatastore (Audio Toolbox) ou un datastore personnalisé.

Vous pouvez importer et entraîner n’importe quel objet du datastore qui fonctionne avec la fonction trainNetwork. Pour plus d’informations sur la construction et l’utilisation d’objets du datastore pour des applications de Deep Learning, veuillez consulter Datastores for Deep Learning.

Sélectionnez Import Data > Import Datastore.

Import Datastore dialog box

Vous pouvez spécifier les données de validation dans la boîte de dialogue d’importation du datastore. Pour plus d’informations, veuillez consulter Import Data into Deep Network Designer.

Data tab of Deep Network Designer displaying a preview of the first five observations in the datastore

Entraînez des réseaux de neurones profonds avec Deep Network Designer.

Avec Deep Network Designer, vous pouvez entraîner un réseau avec des images ou n’importe quel objet du datastore qui fonctionne avec la fonction trainNetwork. Par exemple, vous pouvez entraîner un réseau de segmentation sémantique ou un réseau à entrées multiples avec un objet CombinedDatastore. Pour plus d’informations sur l’importation de données dans Deep Network Designer, veuillez consulter Import Data into Deep Network Designer.

Pour entraîner un réseau sur des données importées dans Deep Network Designer, dans l’onglet Training, cliquez sur Train. L’application affiche un tracé animé de la progression de l’apprentissage. Le tracé montre la perte et la précision des mini-batchs, la perte et la précision de la validation et des informations complémentaires sur la progression de l’apprentissage. Le tracé dispose d’un bouton d’arrêt dans le coin supérieur droit. Cliquez sur le bouton pour arrêter l’apprentissage et revenir à l’état actuel du réseau.

Training progress plot in Deep Network Designer

Pour plus d’informations, veuillez consulter Train Networks Using Deep Network Designer.

Si vous avez besoin de plus de contrôle sur l’apprentissage, cliquez sur Training Options pour sélectionner les paramètres de l’apprentissage. Pour plus d’informations sur la sélection des options d’apprentissage, veuillez consulter trainingOptions.

Training Options dialog box in Deep Network Designer

Vous trouverez un exemple illustrant comment entraîner un réseau de classification d’images dans Transfer Learning with Deep Network Designer. Vous trouverez un exemple illustrant comment entraîner un réseau LSTM de séquence à séquence dans Train Network for Time Series Forecasting Using Deep Network Designer.

Pour entraîner un réseau sur des données non supportées par Deep Network Designer, sélectionnez l’onglet Designer et cliquez sur Export pour exporter l’architecture initiale du réseau. Vous pouvez ensuite entraîner le réseau de manière programmatique, par exemple avec une boucle d’apprentissage personnalisée.

Exportez l’architecture du réseau créé dans Deep Network Designer vers votre espace de travail ou Simulink et générez du code pour recréer le réseau et l’apprentissage.

  • Pour exporter l’architecture du réseau avec les poids initiaux dans votre espace de travail, dans l’onglet Designer, cliquez sur Export. Selon l’architecture du réseau, Deep Network Designer exporte le réseau en tant qu'objet LayerGraph dans la variable lgraph ou en tant qu'objet Layer dans la variable layers.

  • Pour exporter le réseau entraîné dans Deep Network Designer vers votre espace de travail, dans l’onglet Training, cliquez sur Export. Deep Network Designer exporte l’architecture du réseau entraîné en tant qu'objet DAGNetwork dans la variable trainedNetwork. Deep Network Designer exporte également les résultats de l’apprentissage, comme la précision de l’apprentissage et de la validation, en tant que structure array dans la variable trainInfoStruct.

  • Pour exporter le réseau entraîné dans Deep Network Designer dans Simulink, dans l’onglet Training, cliquez sur Export > Export to Simulink. Deep Network Designer enregistre le réseau entraîné sous forme d’un fichier MAT et génère des blocs Simulink représentant le réseau entraîné. Les blocs générés dépendent du type de réseau entraîné.

    • Image Classifier — Classer des données à l'aide d'un réseau de neurones de Deep Learning entraîné.

    • Predict — Prédire des réponses à l'aide d'un réseau de neurones de Deep Learning entraîné.

    • Stateful Classify — Classer des données à l'aide d'un réseau de neurones récurrent entraîné.

    • Stateful Predict — Prédire des réponses à l'aide d'un réseau de neurones récurrent entraîné.

Vous trouverez un exemple illustrant comment exporter un réseau depuis Deep Network Designer dans Simulink dans Export Image Classification Network from Deep Network Designer to Simulink.

Pour recréer un réseau que vous avez construit et entraîné dans Deep Network Designer, générer du code MATLAB.

  • Pour recréer des couches de réseau, dans l’onglet Designer, sélectionnez Export > Generate Code.

  • Pour recréer des couches de réseau, notamment des paramètres entraînables, dans l’onglet Designer, sélectionnez Export > Generate Code with Initial Parameters.

  • Pour recréer le réseau, l’importation des données et l’apprentissage, dans l’onglet Training, sélectionnez Export > Generate Code for Training.

Après avoir généré un script, vous pouvez réaliser les tâches suivantes.

  • Pour recréer les couches de réseau créées dans l’application, exécutez le script. Si vous avez généré le script d’apprentissage, l’exécution du script répliquera également l’apprentissage du réseau.

  • Examinez le code pour découvrir comment créer et connecter des couches de manière programmatique et comment entraîner un réseau profond.

  • Pour modifier les couches, éditez le code. Vous pouvez également exécuter le script et importer le réseau de nouveau dans l’application pour effectuer des modifications.

Pour plus d’informations, veuillez consulter Generate MATLAB Code from Deep Network Designer.

Vous pouvez aussi utiliser Deep Network Designer pour créer des expériences de Deep Learning qui balaient une gamme de valeurs d’hyperparamètres ou utiliser l’optimisation bayésienne pour trouver des options d’apprentissage optimales. Vous trouverez un exemple illustrant comment utiliser Experiment Manager pour ajuster les hyperparamètres dans un réseau entraîné dans Deep Network Designer dans Generate Experiment Using Deep Network Designer.

Exemples associés

Utilisation programmatique

développer tout

deepNetworkDesigner ouvre l’application Deep Network Designer. Si Deep Network Designer est déjà ouvert, deepNetworkDesigner met en avant l’application.

deepNetworkDesigner(net) ouvre l’application Deep Network Designer et charge le réseau spécifié dans l’application. Le réseau peut être un réseau série, un réseau DAG, un graphe de couches ou un tableau de couches.

Par exemple, ouvrez Deep Network Designer avec un réseau SqueezeNet préentraîné.

net = squeezenet;
deepNetworkDesigner(net);

Si Deep Network Designer est déjà ouvert, deepNetworkDesigner(net) met en avant l’application et vous demande d’ajouter ou de remplacer le réseau existant.

Conseils

Pour entraîner plusieurs réseaux et comparer les résultats, essayez Experiment Manager. Vous pouvez utiliser Deep Network Designer pour créer des expériences adaptées à Experiment Manager.

Historique des versions

Introduit dans R2018b