La traduction de cette page n'est pas à jour. Cliquez ici pour voir la dernière version en anglais.
Créer un réseau simple de classification d’images avec Deep Network Designer
Cet exemple montre comment utiliser Deep Network Designer pour créer et entraîner un réseau de neurones à convolution simple pour la classification du Deep Learning. Les réseaux de neurones à convolution sont des outils essentiels pour le Deep Learning et conviennent parfaitement à la reconnaissance d'images.
Dans cet exemple, vous allez :
Importer des images.
Définir l’architecture du réseau.
Spécifier les options d’apprentissage.
Entraîner le réseau.
Charger les données
Chargez les exemples de données numériques sous la forme d'un datastore d’images. La fonction imageDatastore
étiquète automatiquement les images en fonction des noms de dossiers. Le jeu de données comporte 10 classes et chaque image du jeu de données a une taille de 28 x 28 x 1 pixels.
digitDatasetPath = fullfile(matlabroot,'toolbox','nnet','nndemos', ... 'nndatasets','DigitDataset'); imds = imageDatastore(digitDatasetPath, ... 'IncludeSubfolders',true, ... 'LabelSource','foldernames');
Ouvrez Deep Network Designer. Créez un réseau, importez et affichez les données et entraînez le réseau avec Deep Network Designer.
deepNetworkDesigner
Pour créer un réseau vierge, arrêtez-vous sur Blank Network et cliquez sur New.
Pour importer le datastore d’images, sélectionnez l’onglet Data, cliquez sur Import Data > Import Image Data. Sélectionnez imds
comme source des données. Réservez 30 % des données d’apprentissage pour les utiliser comme données de validation. Affectez les observations aux jeux d’apprentissage et de validation de manière aléatoire en sélectionnant Randomize.
Importez les données en cliquant sur Import.
Définir l’architecture du réseau
Dans le volet Designer, définissez l’architecture du réseau de neurones à convolution. Faites glisser des couches depuis la Layer Library et connectez-les. Pour trouver rapidement des couches, utilisez la zone de recherche Filter layers dans le volet Layer Library. Pour modifier les propriétés d’une couche, cliquez sur la couche et modifiez les valeurs dans le volet Properties.
Connectez les couches dans cet ordre :
imageInputLayer
avec la propriétéInputSize
définie à28,28,1
convolution2dLayer
batchNormalizationLayer
reluLayer
fullyConnectedLayer
avec la propriétéOutputSize
définie à10
softmaxLayer
classificationLayer
Pour plus d’informations sur les couches de Deep Learning, veuillez consulter List of Deep Learning Layers.
Entraîner le réseau
Spécifiez les options d’apprentissage et entraînez le réseau.
Dans l’onglet Training, cliquez sur Training Options. Pour cet exemple, définissez le nombre maximal d’epochs à 5 et conservez les autres paramètres par défaut. Terminez la définition des options d’apprentissage en cliquant sur Close. Pour plus d’informations sur les options d’apprentissage, veuillez consulter Set Up Parameters and Train Convolutional Neural Network.
Entraînez le réseau en cliquant sur Train.
La précision est la fraction d’étiquettes que le réseau prédit correctement. Dans ce cas, plus de 97 % des étiquettes prédites correspondent aux étiquettes réelles du jeu de validation.
Pour exporter le réseau entraîné dans l’espace de travail, dans l’onglet Training, cliquez sur Export.
Pour poursuivre sur Deep Learning, vous pouvez essayer d’utiliser des réseaux préentraînés pour d’autres tâches. Résolvez de nouveaux problèmes de classification sur vos données d’images avec l’apprentissage par transfert. Vous trouverez un exemple dans En savoir plus sur l’apprentissage par transfert. Pour en savoir plus sur les réseaux préentraînés, veuillez consulter Pretrained Deep Neural Networks.
Voir aussi
trainingOptions
| Deep Network Designer
Sujets associés
- Créer un réseau simple de classification d’image
- Start Deep Learning Faster Using Transfer Learning
- Essayer le Deep Learning en 10 lignes de code MATLAB
- Classer une image avec un réseau préentraîné
- En savoir plus sur l’apprentissage par transfert
- Utiliser Deep Network Designer pour créer un réseau simple de classification de séquences