vgg16

VGG-16 сверточную нейронную сеть

Описание

VGG-16 - сверточная нейронная сеть, которая имеет глубину 16 слоев. Предварительно обученную версию сети можно загрузить более чем на миллион изображений из базы данных ImageNet [1]. Предварительно обученная сеть может классифицировать изображения в 1000 категорий объектов, таких как клавиатура, мышь, карандаш и многие животные. В результате сеть узнала представления богатых функций для широкой области значений изображений. Сеть имеет размер входного сигнала изображения 224 224. Для более предварительно обученных сетей в MATLAB®, см. «Предварительно обученные глубокие нейронные сети».

Вы можете использовать classify для классификации новых изображений с помощью VGG-16 сети. Следуйте шагам классификации изображений с помощью GoogLeNet и замените GoogLeNet на VGG-16.

Чтобы переобучить сеть по новой задаче классификации, следуйте шагам Traind Нейронной Сети для Глубокого Обучения для классификации новых изображений и загрузки VGG-16 вместо GoogLeNet.

пример

net = vgg16 возвращает VGG-16 сеть, обученную на наборе данных ImageNet.

Эта функция требует Deep Learning Toolbox™ Model для VGG-16 пакета поддержки Сети. Если этот пакет поддержки не установлен, то функция предоставляет ссылку на загрузку.

net = vgg16('Weights','imagenet') возвращает VGG-16 сеть, обученную на наборе данных ImageNet. Этот синтаксис эквивалентен net = vgg16.

layers = vgg16('Weights','none') возвращает необученную сетевую архитектуру VGG-16. Необученная модель не требует пакета поддержки.

Примеры

свернуть все

Загрузите и установите модель Deep Learning Toolbox для VGG-16 пакета поддержки Network.

Напечатать vgg16 в командной строке.

vgg16

Если Deep Learning Toolbox Model для пакета поддержки VGG-16 Network не установлен, то функция предоставляет ссылку на необходимый пакет поддержки в Add-On Explorer. Чтобы установить пакет поддержки, щелкните ссылку и нажмите кнопку Install. Проверьте успешность установки путем ввода vgg16 в командной строке.

vgg16
ans = 

  SeriesNetwork with properties:

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

Визуализация сети с помощью Deep Network Designer.

deepNetworkDesigner(vgg16)

Исследуйте другие предварительно обученные сети в Deep Network Designer, нажав New.

Если необходимо загрузить сеть, нажмите кнопку Install, чтобы открыть Add-On Explorer.

Загрузите предварительно обученную VGG-16 сверточную нейронную сеть и исследуйте слои и классы.

Использование vgg16 для загрузки предварительно обученной VGG-16 сети. Область выхода net является SeriesNetwork объект.

net = vgg16
net = 
  SeriesNetwork with properties:

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

Просмотрите сетевую архитектуру с помощью Layers свойство. Сеть имеет 41 слой. Существует 16 слоев с усвояемыми весами: 13 сверточных слоев и 3 полносвязные слои.

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

Чтобы просмотреть имена классов, выученных сетью, можно просмотреть Classes свойство выходного слоя классификации (конечного слоя). Просмотрите первые 10 классов, задав первые 10 элементов.

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 

Выходные аргументы

свернуть все

Предварительно обученная VGG-16 сверточная нейронная сеть возвращается как SeriesNetwork объект.

Необученная VGG-16 сверточной нейронной сети архитектура, возвращенная как Layer массив.

Ссылки

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

[2] Russakovsky, O., Deng, J., Su, H., et al. «Большой масштабный вызов визуального распознавания ImageNet». Международный журнал компьютерного зрения (IJCV). Том 115, Выпуск 3, 2015, стр. 211-252

[3] Симоньян, Карен и Эндрю Зиссерман. «Очень глубокие сверточные сети для крупномасштабного распознавания изображений». arXiv preprint arXiv:1409.1556 (2014).

[4] Очень глубокие сверточные сети для крупномасштабного визуального распознавания http://www.robots.ox.ac.uk/~vgg/research/very_deep/

Расширенные возможности

..
Введенный в R2017a