Main Content

vgg16

Red neuronal convolucional VGG-16

  • VGG-16 network architecture

Descripción

VGG-16 es una red neuronal convolucional con 16 capas de profundidad. Puede cargar una versión preentrenada de la red entrenada en más de un millón de imágenes desde la base de datos [1] de ImageNet. La red preentrenada puede clasificar imágenes en 1000 categorías de objetos (por ejemplo, teclado, ratón, lápiz y animales). Como resultado, la red ha aprendido representaciones ricas en características para una gran gama de imágenes. El tamaño de la entrada de imagen de la red es de 224 por 224. Para ver más redes preentrenadas en MATLAB®, consulte Pretrained Deep Neural Networks.

Puede utilizar classify para clasificar nuevas imágenes mediante la red VGG-16. Siga los pasos que se muestran en Clasificar una imagen con GoogLeNet y reemplace GoogLeNet por VGG-16.

Para volver a entrenar una red en una nueva tarea de clasificación, siga los pasos indicados en Entrenar redes de deep learning para clasificar nuevas imágenes y cargue VGG-16 en lugar de GoogLeNet.

ejemplo

net = vgg16 devuelve una red entrenada VGG-16 al conjunto de datos de ImageNet.

Esta función requiere el paquete de soporte Deep Learning Toolbox™ Model for VGG-16 Network. Si no ha instalado el paquete de soporte, la función proporciona un enlace de descarga.

net = vgg16('Weights','imagenet') devuelve una red entrenada VGG-16 al conjunto de datos de ImageNet. Esta sintaxis es equivalente a net = vgg16.

layers = vgg16('Weights','none') devuelve la arquitectura de red VGG-16 sin entrenar. El modelo sin entrenar no requiere ningún paquete de soporte.

Ejemplos

contraer todo

Descargue e instale el paquete de soporte Deep Learning Toolbox Model for VGG-16 Network.

Escriba vgg16 en la línea de comandos.

vgg16

Si el paquete de soporte Deep Learning Toolbox Model for VGG-16 Network no está instalado, la función proporciona un enlace al paquete de soporte correspondiente en Add-On Explorer. Para instalar el paquete de soporte, haga clic en el enlace y después en Install. Para comprobar que la instalación se ha realizado correctamente, escriba vgg16 en la línea de comandos.

vgg16
ans = 

  SeriesNetwork with properties:

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

Visualice la red con Deep Network Designer.

deepNetworkDesigner(vgg16)

Para examinar otras redes preentrenadas en Deep Network Designer, haga clic en New.

Deep Network Designer start page showing available pretrained networks

Si necesita descargar una red, deténgase en la red deseada y haga clic en Install para abrir Add-On Explorer.

Cargue una red neuronal convolucional VGG-16 preentrenada y examine las capas y clases.

Use vgg16 para cargar la red VGG-16 preentrenada. La salida net es un objeto SeriesNetwork.

net = vgg16
net = 
  SeriesNetwork with properties:

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

Visualice la arquitectura de red con la propiedad Layers. La red consta de 41 capas. Hay 16 capas con pesos que pueden aprenderse: 13 capas convolucionales y tres capas totalmente conectadas.

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

Para ver los nombres de las clases que la red ha aprendido, visualice la propiedad Classes de la capa de clasificación de salida (la última capa). Para visualizar las 10 primeras clases, especifique los primeros 10 elementos.

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 

Argumentos de salida

contraer todo

Red neuronal convolucional VGG-16 preentrenada, devuelta como un objeto SeriesNetwork.

Arquitectura de red neuronal convolucional VGG-16 sin entrenar, devuelta como un arreglo Layer.

Referencias

[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/

Capacidades ampliadas

Historial de versiones

Introducido en R2017a