La traduction de cette page n'est pas à jour. Cliquez ici pour voir la dernière version en anglais.
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.
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
Créer un réseau de neurones profond
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éparer le réseau préentraîné pour l’apprentissage par transfert
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.
Importer un réseau depuis une plateforme externe
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.
Exporter un réseau vers Simulink
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.
Générer du code MATLAB pour l’architecture du réseau
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
deepNetworkDesigner
deepNetworkDesigner
ouvre l’application Deep Network Designer. Si Deep Network Designer est déjà ouvert, deepNetworkDesigner
met en avant l’application.
deepNetworkDesigner(net
)
net
)deepNetworkDesigner(
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 net
)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"
)
"-v1"
)deepNetworkDesigner(___,
ouvre l’ancienne version (avant R2024a) de l’application. Cette version supporte les objets "-v1"
)DAGNetwork
, SeriesNetwork
et LayerGraph
. Pour plus d’informations, veuillez consulter Modification du comportement par défaut.
Historique des versions
Introduit dans R2018bR2024a: Modification du comportement par défaut
À partir de R2024a, Deep Network Designer crée des objets dlnetwork
par défaut. 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
.
Les objets dlnetwork
présentent plusieurs avantages et sont recommandés à la place des objets DAGNetwork
, SeriesNetwork
ou LayerGraph
.
Un objet
dlnetwork
est un type de données unifié qui supporte la création de réseau, la prédiction, l’apprentissage prédéfini, la visualisation, la compression, la vérification et les boucles d’apprentissage personnalisées.Les objets
dlnetwork
supportent un plus large éventail d’architectures de réseau que vous pouvez créer ou importer à partir de plateformes externes.La fonction
trainnet
supporte les objetsdlnetwork
, ce qui vous permet de spécifier facilement des fonctions de perte. Vous pouvez sélectionner une fonction de perte prédéfinie ou spécifier une fonction de perte personnalisée.L’apprentissage et la prédiction avec des objets
dlnetwork
sont généralement plus rapides que les workflowsLayerGraph
ettrainNetwork
.
Pour reproduire le comportement de l’application avant R2024a, utilisez l’indicateur "-v1"
.
deepNetworkDesigner("-v1") deepNetworkDesigner(net,"-v1")
Comparaison des comportements de Deep Network Designer
Déconseillé | Recommandé |
---|---|
Dans l’ancienne version de Deep Network Designer, lorsque vous travaillez avec des objets
| Dans Deep Network Designer version R2024a et ultérieure, lorsque vous travaillez avec des objets
|
Commande MATLAB
Vous avez cliqué sur un lien qui correspond à cette commande MATLAB :
Pour exécuter la commande, saisissez-la dans la fenêtre de commande de MATLAB. Les navigateurs web ne supportent pas les commandes MATLAB.
Select a Web Site
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
You can also select a web site from the following list:
How to Get Best Site Performance
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
Americas
- América Latina (Español)
- Canada (English)
- United States (English)
Europe
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)