Main Content

La traduzione di questa pagina non è aggiornata. Fai clic qui per vedere l'ultima versione in inglese.

vgg16

Rete neurale convoluzionale VGG-16

  • VGG-16 network architecture

Descrizione

VGG-16 è una rete neurale convoluzionale con 16 livelli di profondità. È possibile caricare una versione preaddestrata della rete, addestrata su oltre un milione di immagini del database di ImageNet [1]. La rete preaddestrata è in grado di classificare le immagini in 1000 categorie di oggetti, come tastiera, mouse, matita e molti animali. Di conseguenza, la rete ha appreso rappresentazioni ricche di feature per un'ampia gamma di immagini. La rete ha una dimensione di input dell'immagine di 224x224. Per ulteriori reti addestrate in MATLAB®, vedere Reti neurali profonde preaddestrate.

È possibile utilizzare classify per classificare nuove immagini utilizzando la rete VGG-16. Seguire i passaggi di Classificazione di immagini utilizzando GoogLeNet e sostituire GoogLeNet con VGG-16.

Per riaddestrare la rete su una nuova attività di classificazione, seguire i passaggi di Addestramento della rete di Deep Learning per classificare nuove immagini e caricare VGG-16 al posto di GoogLeNet.

esempio

net = vgg16 restituisce una rete VGG-16 addestrata sul set di dati di ImageNet.

Questa funzione richiede il pacchetto di supporto Deep Learning Toolbox™ Model for VGG-16 Network. Se il pacchetto di supporto non è installato, la funzione fornisce un link per il download.

net = vgg16('Weights','imagenet') restituisce una rete VGG-16 addestrata sul set di dati di ImageNet. Questa sintassi è equivalente a net = vgg16.

layers = vgg16('Weights','none') restituisce l'architettura della rete VGG-16 non addestrata. Il modello non addestrato non richiede il pacchetto di supporto.

Esempi

comprimi tutto

Scaricare e installare il pacchetto di supporto Deep Learning Toolbox Model for VGG-16 Network.

Digitare vgg16 nella riga di comando.

vgg16

Se il pacchetto di supporto Deep Learning Toolbox Model for VGG-16 Network non è installato, la funzione fornisce un link al pacchetto di supporto richiesto nell’Add-On Explorer. Fare clic sul link per installare il pacchetto di supporto, quindi fare clic su Install. Verificare che l’installazione sia stata eseguita correttamente digitando vgg16 nella riga di comando.

vgg16
ans = 

  SeriesNetwork with properties:

    Layers: [41×1 nnet.cnn.layer.Layer]

Visualizzare la rete con Deep Network Designer.

deepNetworkDesigner(vgg16)

Scoprire altre reti neurali preaddestrate in Deep Network Designer facendo clic su New.

Deep Network Designer start page showing available pretrained neural networks

Se è necessario scaricare una rete neurale, fermarsi sulla rete neurale desiderata e fare clic su Install per aprire l’Add-On Explorer.

Caricare una rete neurale convoluzionale VGG-16 preaddestrata ed esaminare i livelli e le classi.

Utilizzare vgg16 per caricare la rete VGG-16 preaddestrata. L’output net è un oggetto SeriesNetwork.

net = vgg16
net = 
  SeriesNetwork with properties:

    Layers: [41×1 nnet.cnn.layer.Layer]

Visualizzare l'architettura della rete utilizzando la proprietà Layers. La rete ha 41 livelli. Sono presenti 16 livelli con pesi apprendibili: 13 livelli convoluzionali e 3 livelli completamente connessi.

net.Layers
ans = 
  41x1 Layer array with layers:

     1   'input'     Image Input             224x224x3 images with 'zerocenter' normalization
     2   'conv1_1'   Convolution             64 3x3x3 convolutions with stride [1  1] and padding [1  1  1  1]
     3   'relu1_1'   ReLU                    ReLU
     4   'conv1_2'   Convolution             64 3x3x64 convolutions with stride [1  1] and padding [1  1  1  1]
     5   'relu1_2'   ReLU                    ReLU
     6   'pool1'     Max Pooling             2x2 max pooling with stride [2  2] and padding [0  0  0  0]
     7   'conv2_1'   Convolution             128 3x3x64 convolutions with stride [1  1] and padding [1  1  1  1]
     8   'relu2_1'   ReLU                    ReLU
     9   'conv2_2'   Convolution             128 3x3x128 convolutions with stride [1  1] and padding [1  1  1  1]
    10   'relu2_2'   ReLU                    ReLU
    11   'pool2'     Max Pooling             2x2 max pooling with stride [2  2] and padding [0  0  0  0]
    12   'conv3_1'   Convolution             256 3x3x128 convolutions with stride [1  1] and padding [1  1  1  1]
    13   'relu3_1'   ReLU                    ReLU
    14   'conv3_2'   Convolution             256 3x3x256 convolutions with stride [1  1] and padding [1  1  1  1]
    15   'relu3_2'   ReLU                    ReLU
    16   'conv3_3'   Convolution             256 3x3x256 convolutions with stride [1  1] and padding [1  1  1  1]
    17   'relu3_3'   ReLU                    ReLU
    18   'pool3'     Max Pooling             2x2 max pooling with stride [2  2] and padding [0  0  0  0]
    19   'conv4_1'   Convolution             512 3x3x256 convolutions with stride [1  1] and padding [1  1  1  1]
    20   'relu4_1'   ReLU                    ReLU
    21   'conv4_2'   Convolution             512 3x3x512 convolutions with stride [1  1] and padding [1  1  1  1]
    22   'relu4_2'   ReLU                    ReLU
    23   'conv4_3'   Convolution             512 3x3x512 convolutions with stride [1  1] and padding [1  1  1  1]
    24   'relu4_3'   ReLU                    ReLU
    25   'pool4'     Max Pooling             2x2 max pooling with stride [2  2] and padding [0  0  0  0]
    26   'conv5_1'   Convolution             512 3x3x512 convolutions with stride [1  1] and padding [1  1  1  1]
    27   'relu5_1'   ReLU                    ReLU
    28   'conv5_2'   Convolution             512 3x3x512 convolutions with stride [1  1] and padding [1  1  1  1]
    29   'relu5_2'   ReLU                    ReLU
    30   'conv5_3'   Convolution             512 3x3x512 convolutions with stride [1  1] and padding [1  1  1  1]
    31   'relu5_3'   ReLU                    ReLU
    32   'pool5'     Max Pooling             2x2 max pooling with stride [2  2] and padding [0  0  0  0]
    33   'fc6'       Fully Connected         4096 fully connected layer
    34   'relu6'     ReLU                    ReLU
    35   'drop6'     Dropout                 50% dropout
    36   'fc7'       Fully Connected         4096 fully connected layer
    37   'relu7'     ReLU                    ReLU
    38   'drop7'     Dropout                 50% dropout
    39   'fc8'       Fully Connected         1000 fully connected layer
    40   'prob'      Softmax                 softmax
    41   'output'    Classification Output   crossentropyex with 'tench' and 999 other classes

Per visualizzare i nomi delle classi apprese dalla rete, è possibile visualizzare la proprietà Classes del livello di output della classificazione (il livello finale). Visualizzare le prime 10 classi specificando i primi 10 elementi.

net.Layers(end).Classes(1:10)
ans = 10×1 categorical array
     tench 
     goldfish 
     great white shark 
     tiger shark 
     hammerhead 
     electric ray 
     stingray 
     cock 
     hen 
     ostrich 

Argomenti di output

comprimi tutto

Rete neurale convoluzionale VGG-16 preaddestrata, restituita come un oggetto SeriesNetwork.

Architettura della rete neurale convoluzionale VGG-16 non addestrata, restituita come un array di Layer.

Riferimenti

[1] ImageNet. http://www.image-net.org

[2] Russakovsky, O., Deng, J., Su, H., et al. “ImageNet Large Scale Visual Recognition Challenge.” International Journal of Computer Vision (IJCV). Vol 115, Issue 3, 2015, pp. 211–252

[3] Simonyan, Karen, and Andrew Zisserman. "Very deep convolutional networks for large-scale image recognition." arXiv preprint arXiv:1409.1556 (2014).

[4] Very Deep Convolutional Networks for Large-Scale Visual Recognition http://www.robots.ox.ac.uk/~vgg/research/very_deep/

Funzionalità estese

Cronologia versioni

Introdotto in R2017a