Main Content

Deep Network Designer

Concevoir et visualiser des réseaux de Deep Learning

Description

L’application Deep Network Designer permet d’importer, de créer, de visualiser et de modifier des réseaux de Deep Learning. Avec cette application, vous pouvez :

  • Construire, modifier et combiner des réseaux.

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

  • Importer des réseaux depuis PyTorch® et TensorFlow™.

  • Analyser les réseaux pour vous assurer que l’architecture est correctement définie.

  • Exporter des réseaux vers Simulink®.

  • Générer du code MATLAB® pour créer des réseaux.

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

Créez un réseau de classification pour des caractéristiques numériques.

Ouvrez Deep Network Designer.

deepNetworkDesigner

Pour créer un réseau vierge, arrêtez-vous sur Blank Network et cliquez sur New. L’application affiche un canevas vierge où vous pouvez faire glisser et déposer des couches.

Depuis la Layer Library, faites glisser une couche featureInputLayer sur le canevas. Vous pouvez utiliser le filtre de la Layer Library pour trouver plus facilement des couches. Sélectionnez la couche. Dans le volet Properties, définissez Normalization à "zscore" et InputSize au nombre de caractéristiques de vos données. Ensuite, faites glisser une couche fullyConnectedLayer sur le canevas. Pour connecter les couches, arrêtez-vous sur la featureInputLayer et cliquez sur le port out. Faites glisser la flèche jusqu’au port in de la fullyConnectedLayer.

Ajoutez une couche layerNormalizationLayer suivie d’une couche reluLayer au canevas et connectez-les de manière séquentielle.

Enfin, ajoutez une couche fullyConnectedLayer suivie d’une couche softmaxLayer et connectez-les. Sélectionnez la dernière couche fullyConnectedLayer et définissez OutputSize au nombre de classes de vos données.

Pour aligner automatiquement les couches, cliquez sur Auto Arrange.

Pour vérifier que le réseau est prêt pour l’apprentissage, sélectionnez Analyze. Deep Learning Network Analyzer n’indique aucune erreur ni aucun avertissement pour le réseau.

Pour exporter le réseau dans l’espace de travail, cliquez sur Export. Pour générer du code afin de recréer le réseau, cliquez sur Export > Generate Code without Initial Parameters (Générer du code sans les paramètres initiaux).

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.

Deep Network Designer propose une sélection de réseaux d’images et audio préentraînés. Pour explorer ces réseaux préentraînés, ouvrez Deep Network Designer.

deepNetworkDesigner

Pour cet exemple, arrêtez-vous sur SqueezeNet et cliquez sur Open.

Pour préparer le réseau pour l’apprentissage par transfert, modifiez la dernière couche entraînable. Pour SqueezeNet, la dernière couche entraînable est la couche de convolution 2D 'conv10'.

  • Sélectionnez la couche 'conv10'. Au bas du volet Properties, cliquez sur Unlock Layer. Le déverrouillage de la couche supprime tous ses paramètres entraînables. Dans la boîte de dialogue d’avertissement qui apparaît, cliquez sur Unlock Anyway. Les propriétés de la couche sont alors déverrouillées pour que vous puissiez les adapter à votre nouvelle tâche. Définissez la propriété NumFilters au nouveau nombre de classes.

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

Avant R2023b : pour modifier les propriétés des couches pour une nouvelle tâche, vous devez remplacer les couches au lieu de les déverrouiller.

Vérifiez votre réseau en cliquant sur Analyze. Le réseau est prêt pour l’apprentissage si Deep Learning Network Analyzer n’indique aucune erreur. Pour exporter le réseau préparé dans l’espace de travail, cliquez sur Export. Pour générer du code MATLAB afin de créer le réseau, cliquez sur Generate Code with Initial Parameters (Générer du code avec les paramètres initiaux).

Vous trouverez un exemple illustrant comment entraîner un réseau pour classer de nouvelles images dans Prepare Network for Transfer Learning Using Deep Network Designer.

Importez un réseau de neurones à partir de PyTorch® ou de TensorFlow™.

Pour cet exemple, importez le modèle MNASNet (Copyright© Soumith Chintala 2016) PyTorch. Téléchargez le fichier mnasnet1_0 (d’une taille d’environ 17 Mo) depuis le site web de MathWorks.

modelfile = matlab.internal.examples.downloadSupportFile("nnet", ...
    "data/PyTorchModels/mnasnet1_0.pt");

Pour importer un réseau depuis une plateforme externe, utilisez Deep Network Designer.

deepNetworkDesigner

Vous pouvez importer des modèles à partir de PyTorch® ou de TensorFlow™.

Pour les modèles PyTorch®, cliquez sur l’icône From PyTorch. Dans la boîte de dialogue Import PyTorch Model, copiez l’emplacement du fichier du modèle, puis cliquez sur Import.

Lorsque vous importez un réseau PyTorch avec Deep Network Designer, une option permet de spécifier les tailles des entrées du réseau. Cette option n’est disponible que si la spécification des tailles des entrées peut augmenter l’efficacité de l’importation, par exemple en réduisant le nombre de couches personnalisées.

L’application importe le réseau et génère un rapport d’importation. Le rapport d’importation affiche les éventuels problèmes qui nécessitent votre intervention avant que vous n’utilisiez le réseau pour l’apprentissage ou l’inférence. Par exemple, ce rapport affiche un avertissement si l’application ne peut pas déduire quelles sont les tailles des entrées ou si vous devez compléter des couches d’espace réservé.

Pour un exemple illustrant comment importer un réseau PyTorch® dans Deep Network Designer et corriger les éventuels problèmes, veuillez consulter Import PyTorch® Model Using Deep Network Designer.

Exportez un réseau entraîné depuis Deep Network Designer vers Simulink®.

Ouvrez Deep Network Designer.

deepNetworkDesigner

Arrêtez-vous sur SqueezeNet et cliquez sur Open. Pour exporter le réseau vers Simulink, sélectionnez Export > Export to Simulink. Dans la boîte de dialogue Export to Simulink, sélectionnez l’emplacement où enregistrer le fichier MAT avec les paramètres du réseau puis sélectionnez Export. Pendant l’exportation, l’application tente d’initialiser le réseau s’il n’est pas déjà initialisé.

Les blocs générés par l’application dépendent du type de réseau.

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

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

Pour SqueezeNet, l’application génère un bloc Predict.

L’application Deep Network Designer permet de générer du code MATLAB® qui recrée l’architecture du réseau.

  • Pour recréer les couches de votre réseau y compris les paramètres initiaux, sélectionnez Export > Generate Network Code With Parameters (Générer le code du réseau avec les paramètres). L’application crée un live script et un fichier MAT contenant les paramètres initiaux (poids et biais) de votre réseau. Exécutez le script pour recréer les couches du réseau y compris les paramètres entraînables à partir du fichier MAT. Utilisez cette option pour conserver les poids si vous souhaitez effectuer un apprentissage par transfert.

  • Pour recréer uniquement les couches de votre réseau, sélectionnez Export > Generate Network Code Without Parameters (Générer le code du réseau sans les paramètres). Un tel réseau ne contient pas les paramètres initiaux comme les poids préentraînés.

L’exécution du script généré renvoie l’architecture du réseau comme un objet dlnetwork. Pour un exemple d’apprentissage d’un réseau exporté depuis Deep Network Designer, veuillez consulter Démarrer avec Deep Network Designer. Pour en savoir plus sur la génération de code, veuillez consulter Generate MATLAB Code from 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 celle-ci. Le réseau peut être un tableau de couches ou un objet dlnetwork. Si vous importez un objet DAGNetwork ou SeriesNetwork, l’application tente de convertir le réseau en objet dlnetwork. Pour plus d’informations, veuillez consulter dag2dlnetwork. Si vous importez un objet LayerGraph, l’application tente de le convertir en objet dlnetwork.

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

deepNetworkDesigner(___,"-v1") ouvre l’ancienne version (avant R2024a) de l’application. Cette version supporte les objets DAGNetwork, SeriesNetwork et LayerGraph. Pour plus d’informations, veuillez consulter Modification du comportement par défaut.

Historique des versions

Introduit dans R2018b

développer tout