Contenu principal

layerGraph

(Déconseillé) Graphe des couches de réseau pour le Deep Learning

L’utilisation d’objets LayerGraph est déconseillée. Utilisez des objets dlnetwork à la place. Pour plus d’informations, veuillez consulter Historique des versions.

Description

Un graphe de couches spécifie l'architecture d'un réseau de neurones sous la forme d'un DAG (Directed Acyclic Graph) de couches de Deep Learning. Les couches peuvent avoir plusieurs entrées et plusieurs sorties.

Création

Description

lgraph = layerGraph crée un graphe de couches vide ne contenant aucune couche. Vous pouvez ajouter des couches au graphe vide en utilisant la fonction addLayers.

exemple

lgraph = layerGraph(layers) crée un graphe de couches à partir d'un tableau de couches de réseau et définit la propriété Layers. Les couches de lgraph sont connectées dans le même ordre séquentiel que dans layers.

lgraph = layerGraph(net) extrait le graphe de couches d’un objet SeriesNetwork, DAGNetwork ou dlnetwork. Par exemple, vous pouvez extraire le graphe de couches d’un réseau préentraîné afin de procéder à un apprentissage par transfert.

Arguments en entrée

développer tout

Réseau de Deep Learning, défini comme étant un objet SeriesNetwork, DAGNetwork ou dlnetwork.

Propriétés

développer tout

Ce propriété est en lecture seule.

Couches du réseau, définies par un tableau Layer.

Ce propriété est en lecture seule.

Connexions des couches définies sous la forme d'une table à deux colonnes.

Dans la table, chaque ligne représente une connexion dans le graphe des couches. La première colonne, intitulée Source, indique la source de chaque connexion. La deuxième colonne, intitulée Destination, indique la destination de chaque connexion. Les sources et destinations des connexions sont des noms de couches ou prennent la forme "layerName/IOName", où "IOName" correspond au nom de la couche en entrée ou en sortie.

Types de données : table

Ce propriété est en lecture seule.

Noms des couches d’entrée, définis par un cell array de vecteurs de caractères.

Types de données : cell

Ce propriété est en lecture seule.

Noms des couches de sortie, définis par un cell array de vecteurs de caractères.

Types de données : cell

Fonctions d'objet

addLayersAdd layers to neural network
removeLayersRemove layers from neural network
replaceLayerReplace layer in neural network
connectLayersConnect layers in neural network
disconnectLayersDisconnect layers in neural network
plotTracer l’architecture du réseau de neurones

Exemples

réduire tout

Créez un graphe de couches simple pour le Deep Learning.

Le réseau simple de cet exemple se compose des éléments suivants :

  • Une branche principale comportant des couches connectées de manière séquentielle.

  • Une connexion de type raccourci contenant une couche unique de convolution 1 x 1. Les connexions de type raccourci permettent aux gradients des paramètres de passer plus facilement de la couche de sortie vers les couches précédentes du réseau.

Créez la branche principale du réseau sous la forme d’un tableau de couches (layer array). La couche d'addition additionne les entrées multiples élément par élément. Spécifiez le nombre d’entrées que la couche d’addition doit additionner. Pour faciliter l'ajout de connexions par la suite, spécifiez les noms pour la première couche ReLU et la couche d'addition.

layers = [
    imageInputLayer([28 28 1])
    
    convolution2dLayer(5,16,'Padding','same')
    batchNormalizationLayer
    reluLayer('Name','relu_1')
    
    convolution2dLayer(3,32,'Padding','same','Stride',2)
    batchNormalizationLayer
    reluLayer
    convolution2dLayer(3,32,'Padding','same')
    batchNormalizationLayer
    reluLayer
    
    additionLayer(2,'Name','add')
    
    averagePooling2dLayer(2,'Stride',2)
    fullyConnectedLayer(10)
    softmaxLayer
    classificationLayer];

Créez un graphe des couches à partir du tableau de couches (layer array). layerGraph connecte toutes les couches de layers de manière séquentielle. Tracez le graphe des couches.

lgraph = layerGraph(layers);
figure
plot(lgraph)

Figure contains an axes object. The axes object contains an object of type graphplot.

Créez la couche de convolution 1 x 1 et ajoutez-la au graphe des couches. Spécifiez le nombre de filtres par convolution et le pas de sorte que la taille d'activation corresponde à celle de la troisième couche ReLU. Cette disposition permet à la couche d'addition d'ajouter les sorties de la troisième couche ReLU et de la couche de convolution 1 x 1. Pour vérifier la présence de la couche dans le graphe, tracez le graphe des couches.

skipConv = convolution2dLayer(1,32,'Stride',2,'Name','skipConv');
lgraph = addLayers(lgraph,skipConv);
figure
plot(lgraph)

Figure contains an axes object. The axes object contains an object of type graphplot.

Créez la connexion de type raccourci entre la couche 'relu_1' et la couche 'add'. Étant donné que vous avez spécifié un nombre d'entrées de 2 pour la couche d'addition à sa création, la couche contient deux entrées nommées 'in1' et 'in2'. La troisième couche ReLU est déjà connectée à l’entrée 'in1'. Connectez la couche 'relu_1' à la couche 'skipConv', et la couche 'skipConv' à l’entrée 'in2' de la couche 'add'. La couche d'addition additionne à présent les sorties de la troisième couche ReLU et la couche 'skipConv'. Pour vérifier que les couches sont correctement connectées, tracez le graphe des couches.

lgraph = connectLayers(lgraph,'relu_1','skipConv');
lgraph = connectLayers(lgraph,'skipConv','add/in2');
figure
plot(lgraph);

Figure contains an axes object. The axes object contains an object of type graphplot.

Limitations

  • Les objets du graphe de couches ne contiennent aucune information de quantification. L'extraction du graphe de couches d'un réseau quantifié, puis le réassemblage du réseau en utilisant assembleNetwork ou dlnetwork, supprime les informations de quantification du réseau.

Historique des versions

Introduit dans R2017b

réduire tout