Contenu principal

Spécifier les couches d’un réseau de neurones à convolution

Plusieurs méthodes vous permettent de créer et de personnaliser un modèle de Deep Learning. Par exemple, vous pouvez importer et adapter un modèle préentraîné, créer un réseau à partir de zéro ou définir un modèle de Deep Learning en tant que fonction.

La plupart du temps, vous pouvez spécifier de nombreux types de modèles de Deep Learning sous la forme d'un réseau de neurones de couches, puis l'entraîner avec la fonction trainnet. Pour avoir accès à la liste des couches et savoir comment les créer, veuillez consulter List of Deep Learning Layers.

Dans le cas de réseaux de neurones simples avec des couches connectées en série, vous pouvez spécifier l'architecture sous la forme d'un tableau de couches. Par exemple, pour créer un réseau de neurones qui classe des images en niveaux de gris 28 x 28 en 10 classes, vous pouvez spécifier le tableau de couches :

layers = [
    imageInputLayer([28 28 1])
    convolution2dLayer(5,20)
    batchNormalizationLayer
    reluLayer
    fullyConnectedLayer(10)
    softmaxLayer];

Dans le cas de réseaux de neurones à la structure plus complexe, par exemple les réseaux de neurones présentant des branches, vous pouvez spécifier le réseau de neurones en tant qu’objet dlnetwork. Vous pouvez ajouter et connecter des couches en utilisant respectivement les fonctions addLayers et connectLayers. Par exemple, pour créer un réseau à entrées multiples qui classe des paires d’images RVB 224 x 224 et en niveaux de gris 64 x 64 en 10 classes, vous pouvez spécifier le réseau de neurones :

net = dlnetwork;
layers = [
    imageInputLayer([224 224 3])
    convolution2dLayer(5,128)
    batchNormalizationLayer
    reluLayer
    flattenLayer
    concatenationLayer(1,2,Name="cat")
    fullyConnectedLayer(10)
    softmaxLayer];

net = addLayers(net,layers);

layers = [
    imageInputLayer([64 64 1])
    convolution2dLayer(5,128)
    batchNormalizationLayer
    reluLayer
    flattenLayer(Name="flatten2")];

net = addLayers(net,layers);
net = connectLayers(net,"flatten2","cat/in2");
Affichez le réseau de neurones dans une figure.
figure
plot(net)

Si un modèle ne peut pas être spécifié comme un réseau de couches, vous pouvez le définir comme une fonction. Vous trouverez un exemple illustrant comment entraîner un modèle de Deep Learning défini comme une fonction dans Train Network Using Model Function.

Voir aussi

| |

Rubriques