vgg19

Сверточная нейронная сеть VGG-19

Описание

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

Можно использовать classify классифицировать новые изображения с помощью сети VGG-19. Выполните шаги, Классифицируют Изображение Используя GoogLeNet и заменяют GoogLeNet на VGG-19.

Чтобы переобучить сеть на новой задаче классификации, выполните шаги, Обучают Нейронную сеть для глубокого обучения Классифицировать Новые Изображения и загружать VGG-19 вместо GoogLeNet.

пример

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

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

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

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

Примеры

свернуть все

В этом примере показано, как загрузить и установить Модель Deep Learning Toolbox для пакета Сетевой поддержки VGG-19.

Введите vgg19 в командной строке.

vgg19

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

vgg19
ans = 

  SeriesNetwork with properties:

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

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

Используйте vgg19 загружать предварительно обученную сеть VGG-19. Выход net SeriesNetwork объект.

net = vgg19
net = 
  SeriesNetwork with properties:

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

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

net.Layers
ans = 
  47x1 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   'conv3_4'   Convolution             256 3x3x256 convolutions with stride [1  1] and padding [1  1  1  1]
    19   'relu3_4'   ReLU                    ReLU
    20   'pool3'     Max Pooling             2x2 max pooling with stride [2  2] and padding [0  0  0  0]
    21   'conv4_1'   Convolution             512 3x3x256 convolutions with stride [1  1] and padding [1  1  1  1]
    22   'relu4_1'   ReLU                    ReLU
    23   'conv4_2'   Convolution             512 3x3x512 convolutions with stride [1  1] and padding [1  1  1  1]
    24   'relu4_2'   ReLU                    ReLU
    25   'conv4_3'   Convolution             512 3x3x512 convolutions with stride [1  1] and padding [1  1  1  1]
    26   'relu4_3'   ReLU                    ReLU
    27   'conv4_4'   Convolution             512 3x3x512 convolutions with stride [1  1] and padding [1  1  1  1]
    28   'relu4_4'   ReLU                    ReLU
    29   'pool4'     Max Pooling             2x2 max pooling with stride [2  2] and padding [0  0  0  0]
    30   'conv5_1'   Convolution             512 3x3x512 convolutions with stride [1  1] and padding [1  1  1  1]
    31   'relu5_1'   ReLU                    ReLU
    32   'conv5_2'   Convolution             512 3x3x512 convolutions with stride [1  1] and padding [1  1  1  1]
    33   'relu5_2'   ReLU                    ReLU
    34   'conv5_3'   Convolution             512 3x3x512 convolutions with stride [1  1] and padding [1  1  1  1]
    35   'relu5_3'   ReLU                    ReLU
    36   'conv5_4'   Convolution             512 3x3x512 convolutions with stride [1  1] and padding [1  1  1  1]
    37   'relu5_4'   ReLU                    ReLU
    38   'pool5'     Max Pooling             2x2 max pooling with stride [2  2] and padding [0  0  0  0]
    39   'fc6'       Fully Connected         4096 fully connected layer
    40   'relu6'     ReLU                    ReLU
    41   'drop6'     Dropout                 50% dropout
    42   'fc7'       Fully Connected         4096 fully connected layer
    43   'relu7'     ReLU                    ReLU
    44   'drop7'     Dropout                 50% dropout
    45   'fc8'       Fully Connected         1000 fully connected layer
    46   'prob'      Softmax                 softmax
    47   '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-19, возвращенная как SeriesNetwork объект.

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

Ссылки

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

[2] Russakovsky, O., Дэн, J., Су, H., и др. “Крупный масштаб ImageNet Визуальная проблема Распознавания”. Международный журнал Компьютерного зрения (IJCV). Vol 115, Выпуск 3, 2015, стр 211–252

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

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

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

Введенный в R2017a