Сети и слои, поддержанные для генерации кода С++

MATLAB® Coder™ поддерживает генерацию кода для ряда и сверточных нейронных сетей направленного графа без петель (DAG) (CNNs или ConvNets). Можно сгенерировать код для любой обученной сверточной нейронной сети, слои которой поддерживаются для генерации кода. Смотрите Поддерживаемые Слои.

Поддерживаемые предварительно обученные сети

Следующие предварительно обученные сети, доступные в Deep Learning Toolbox™, поддерживаются для генерации кода.

Сетевое имяОписаниеБиблиотека ARM® ComputeIntel® MKL-DNN
AlexNet

Сверточная нейронная сеть AlexNet. Для предварительно обученной модели AlexNet смотрите alexnet.

ДаДа
DarkNetДаркнет 19 и даркнет 53 сверточных нейронных сети. Для предварительно обученных моделей DarkNet смотрите darknet19 и darknet53.ДаДа
DenseNet-201

Сверточная нейронная сеть DenseNet-201. Для предварительно обученной модели DenseNet-201 смотрите densenet201.

ДаДа
GoogLeNet

Сверточная нейронная сеть GoogLeNet. Для предварительно обученной модели GoogLeNet смотрите googlenet.

ДаДа
Inception-ResNet-v2

Сверточная нейронная сеть Inception-ResNet-v2. Для предварительно обученной модели Inception-ResNet-v2 смотрите inceptionresnetv2.

ДаДа
Inception-v3Сверточная нейронная сеть Inception-v3. Для предварительно обученной модели Inception-v3 смотрите inceptionv3.ДаДа
MobileNet-v2

Сверточная нейронная сеть MobileNet-v2. Для предварительно обученной модели MobileNet-v2 смотрите mobilenetv2.

ДаДа
NASNet-Large

NASNet-большая сверточная нейронная сеть. Для предварительно обученной NASNet-большой-модели смотрите nasnetlarge.

ДаДа
NASNet-Mobile

NASNet-мобильная сверточная нейронная сеть. Для предварительно обученной модели NASNet-Mobile смотрите nasnetmobile.

ДаДа
ResNet

ResNet-18, ResNet-50 и сверточные нейронные сети ResNet-101. Для предварительно обученных моделей ResNet смотрите resnet18, resnet50, и resnet101.

ДаДа
SegNet

Мультикласс pixelwise сеть сегментации. Для получения дополнительной информации смотрите segnetLayers.

НетДа
SqueezeNet

Маленький, глубокая нейронная сеть. Для предварительно обученных моделей SqeezeNet смотрите squeezenet.

ДаДа
VGG-16

Сверточная нейронная сеть VGG-16. Для предварительно обученной модели VGG-16 смотрите vgg16.

ДаДа
VGG-19

Сверточная нейронная сеть VGG-19. Для предварительно обученной модели VGG-19 смотрите vgg19.

ДаДа
Xception

Сверточная нейронная сеть Xception. Для предварительно обученной модели Xception смотрите xception.

ДаДа

Поддерживаемые слои

Следующие слои поддерживаются для генерации кода MATLAB Coder для целевых библиотек глубокого обучения, заданных в таблице.

Если вы устанавливаете Интерфейс MATLAB Coder пакета поддержки для Библиотек Глубокого обучения, можно использовать coder.getDeepLearningLayers видеть список слоев, поддержанных для определенной библиотеки глубокого обучения. Например:

coder.getDeepLearningLayers('mkldnn')

Имя слояОписаниеARM вычисляет библиотекуIntel MKL-DNN
additionLayer

Слой Addition

ДаДа
anchorBoxLayer

Слой поля привязки

ДаДа
averagePooling2dLayer

Средний слой объединения

ДаДа
batchNormalizationLayer

Слой нормализации партии.

ДаДа
bilstmLayerДвунаправленный слой LSTMДаНет
classificationLayer

Создайте классификацию выходной слой

ДаДа
clippedReluLayer

Отсеченный слой Rectified Linear Unit (ReLU)

ДаДа
concatenationLayer

Слой Concatenation

ДаДа
convolution2dLayer

2D слой свертки

Да

Да

crop2dLayer

Слой, который применяет 2D обрезку к входу

ДаДа
CrossChannelNormalizationLayer

Мудрый каналом локальный слой нормализации ответа

ДаДа

Пользовательские выходные слои

Все выходные слои включая пользовательскую классификацию или регрессию выводят слои, созданные при помощи nnet.layer.ClassificationLayer или nnet.layer.RegressionLayer.

Для примера, показывающего, как задать пользовательскую классификацию выходной слой и задать функцию потерь, смотрите, Задают Пользовательскую Классификацию Выходной Слой (Deep Learning Toolbox).

Для примера, показывающего, как задать пользовательскую регрессию выходной слой и задать функцию потерь, смотрите, Задают Пользовательскую Регрессию Выходной Слой (Deep Learning Toolbox).

Да

Да

depthConcatenationLayer

Слой конкатенации глубины

Да

Да

dropoutLayer

Слой Dropout

ДаДа
eluLayer

Слой Exponential linear unit (ELU)

ДаДа
fullyConnectedLayer

Полносвязный слой

ДаДа
globalAveragePooling2dLayer

Глобальный средний слой объединения для пространственных данных

Да

Да

globalMaxPooling2dLayer

2D глобальная переменная макс. объединение слоя

ДаДа

groupedConvolution2dLayer

2D сгруппированный сверточный слой

Да

  • Если вы задаете целое число для numGroups, затем значение должно быть меньше чем или равно 2.

Да

imageInputLayer

Отобразите входной слой

  • Генерация кода не поддерживает 'Normalization' заданное использование указателя на функцию.

ДаДа
leakyReluLayer

Текучий слой Rectified Linear Unit (ReLU)

ДаДа
lstmLayer

Слой Long short-term memory (LSTM)

ДаНет
maxPooling2dLayer

Слой объединения Max

ДаДа
maxUnpooling2dLayer

Слой необъединения Max

НетДа
pixelClassificationLayer

Создайте слой классификации пикселей для семантической сегментации

ДаДа
regressionLayer

Создайте регрессию выходной слой

ДаДа
reluLayer

Слой Rectified Linear Unit (ReLU)

ДаДа
sequenceInputLayer

Последовательность ввела слой

ДаНет
softmaxLayer

Слой Softmax

Да

Да

ssdMergeLayer

Слой слияния SSD для обнаружения объектов

ДаДа

nnet.keras.layer.FlattenCStyleLayer

Сглаживает активации в 1D C-стиль принятия (упорядоченный по строкам) порядок

Да

Да

nnet.keras.layer.GlobalAveragePooling2dLayer

Глобальный средний слой объединения для пространственных данных

Да

Да

nnet.keras.layer.SigmoidLayer

Сигмоидальный слой активации

Да

Да

nnet.keras.layer.TanhLayer

Гиперболический слой активации касательной

Да

Да

nnet.keras.layer.ZeroPadding2dLayer

Нулевой дополнительный слой для 2D входа

Да

Да

nnet.onnx.layer.ElementwiseAffineLayer

Слой, который выполняет поэлементное масштабирование входа, сопровождаемого сложением

ДаДа

nnet.onnx.layer.FlattenLayer

Сгладьте слой для сети ONNX™

Да

Да

nnet.onnx.layer.IdentityLayer

Слой, который реализует единичный оператор ONNX

Да

Да

tanhLayer

Гиперболическая касательная (tanh) слой

Да

Да

transposedConv2dLayer

Транспонированный 2D слой свертки

Генерация кода не поддерживает асимметричную обрезку входа. Например, задавая векторный [t b l r] для 'Cropping' параметр, чтобы обрезать верхнюю часть, нижнюю часть, оставленную, и право на вход, не поддержан.

Да

Да

wordEmbeddingLayer

Слой встраивания слова сопоставляет словари с векторами

Да

Нет

YOLOv2OutputLayer

Выведите слой для сети обнаружения объектов YOLO v2

Да

Да

YOLOv2ReorgLayer

Слой Reorganization для сети обнаружения объектов YOLO v2

Да

Да

YOLOv2TransformLayer

Преобразуйте слой для сети обнаружения объектов YOLO v2

Да

Да

Поддерживаемые классы

Класс

Описание

ARM вычисляет библиотеку

Intel MKL-DNN

yolov2ObjectDetector

  • Только detect метод yolov2ObjectDetector поддерживается для генерации кода.

  • roi аргумент к detect метод должен быть постоянной генерацией кода (coder.const()) и 1x4 вектор.

  • Только Threshold, SelectStrongest, MinSize, и MaxSize пары "имя-значение" для detect поддерживаются.

  • labels выход detect возвращен как массив ячеек из символьных векторов, например, {'car','bus'}.

Да

Да

ssdObjectDetector

Объект обнаружить объекты с помощью основанного на SSD детектора.

  • Только detect метод ssdObjectDetector поддерживается для генерации кода.

  • roi аргумент к detect метод должен быть codegen константой (coder.const()) и 1x4 вектор.

  • Только Threshold, SelectStrongest, MinSize, MaxSize, и MiniBatchSize Пары "имя-значение" поддерживаются. Все Пары "имя-значение" должны быть константами времени компиляции.

  • Канал и пакетный размер входного изображения должны быть фиксированным размером.

  • labels выходной параметр возвращен как категориальный массив.

  • В сгенерированном коде вход перемасштабируется к размеру входного слоя сети. Но ограничительная рамка, что detect возвраты метода в отношении исходного входного размера.

Да

Да

Смотрите также

Похожие темы