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

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

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

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

Имя сетиОписаниеРУКА® Вычислительная библиотекаIntel® MKL-DNN
AlexNet

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

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

DenseNet-201 сверточную нейронную сеть. Для предварительно обученной модели DenseNet-201 см. densenet201 (Deep Learning Toolbox).

ДаДа
EfficientNet-b0

EfficientNet-b0 сверточную нейронную сеть. Для предварительно обученной модели EfficientNet-b0 см. efficientnetb0 (Deep Learning Toolbox).

ДаДа
GoogLeNet

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

ДаДа
Inception-ResNet-v2

Inception-ResNet-v2 сверточную нейронную сеть. Для предварительно обученной модели Inception-ResNet-v2 см. inceptionresnetv2 (Deep Learning Toolbox).

ДаДа
Inception-v3Inception-v3 сверточную нейронную сеть. Для предварительно обученной модели Inception-v3 см. inceptionv3 (Deep Learning Toolbox).ДаДа
MobileNet-v2

MobileNet-v2 сверточную нейронную сеть. Для предварительно обученной модели MobileNet-v2 см. mobilenetv2 (Deep Learning Toolbox).

ДаДа
NASNet-Large

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

ДаДа
NASNet-Mobile

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

ДаДа
ResNet

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

ДаДа
SegNet

Многоклассовая пиксельная сеть сегментации. Для получения дополнительной информации см. segnetLayers (Computer Vision Toolbox).

НетДа
SqueezeNet

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

ДаДа
VGG-16

VGG-16 сверточную нейронную сеть. Для предварительно обученной модели VGG-16 см. vgg16 (Deep Learning Toolbox).

ДаДа
VGG-19

VGG-19 сверточную нейронную сеть. Для предварительно обученной модели VGG-19 см. vgg19 (Deep Learning Toolbox).

ДаДа
Xception

Xception сверточная нейронная сеть. Для предварительно обученной модели Xception см. xception (Deep Learning Toolbox).

ДаДа

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

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

После установки пакета поддержки MATLAB Coder Interface for Глубокое Обучение Libraries можно использовать coder.getDeepLearningLayers чтобы просмотреть список слоев, поддерживаемых для определенной библиотеки глубокого обучения. Для примера:

coder.getDeepLearningLayers('mkldnn')

Имя слояОписаниеВычислительная библиотека ARMIntel MKL-DNNТиповой C/C + +
additionLayer (Deep Learning Toolbox)

Слой сложения

ДаДаДа
anchorBoxLayer (Computer Vision Toolbox)

Слой анкерной коробки

ДаДаНет
averagePooling2dLayer (Deep Learning Toolbox)

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

ДаДаНет
batchNormalizationLayer (Deep Learning Toolbox)

Нормализация партии .

ДаДаНет
bilstmLayer (Deep Learning Toolbox)Двунаправленный слой LSTMДаДаДа
classificationLayer (Deep Learning Toolbox)

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

ДаДаДа
clippedReluLayer (Deep Learning Toolbox)

Подрезанный слой Rectified Linear Unit (ReLU)

ДаДаНет
concatenationLayer (Deep Learning Toolbox)

Слой конкатенации

ДаДаНет
convolution2dLayer (Deep Learning Toolbox)

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

  • Для генерации кода, PaddingValue параметр должен быть равен 0, которое является значением по умолчанию.

Да

Да

Нет
crop2dLayer (Deep Learning Toolbox)

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

ДаДаНет
CrossChannelNormalizationLayer (Deep Learning Toolbox)

Слой нормализации локального отклика по каналам

ДаДаНет

Пользовательские слои

Пользовательские слои с настраиваемыми параметрами или без них, которые вы задаете для своей задачи.

См.:

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

Пользовательские слои в сетях последовательности не поддерживаются для генерации кода.

Для генерации кода пользовательские слои должны содержать %#codegen прагма.

Да

ДаДа

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

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

Для примера, показывающего, как задать пользовательский выходной слой классификации и задать функцию потерь, смотрите Define Custom Classification Output Layer (Deep Learning Toolbox).

Для примера, показывающего, как задать пользовательский выходной слой регрессии и задать функцию потерь, смотрите Define Custom Regression Output Layer (Deep Learning Toolbox).

Да

Да

Да
depthConcatenationLayer (Deep Learning Toolbox)

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

Да

Да

Нет
depthToSpace2dLayer(Набор Image Processing Toolbox)2-D глубину к пространственному слоюДаДаДа
dicePixelClassificationLayer (Computer Vision Toolbox)

Слой классификации пикселей Dice обеспечивает категориальную метку для каждого пикселя изображения или воксель, используя обобщённый Dice Loss.

ДаДаНет
dropoutLayer (Deep Learning Toolbox)

Выпадающий слой

ДаДаДа
eluLayer (Deep Learning Toolbox)

Экспоненциало линейного модуля (ELU)

ДаДаНет
featureInputLayer (Deep Learning Toolbox)

Входной слой признака

ДаДаДа
flattenLayer (Deep Learning Toolbox)

Уплощенный слой

ДаДаНет
focalLossLayer (Computer Vision Toolbox)Слой очаговых потерь предсказывает классы объектов, используя очаговые потери.ДаДаНет
fullyConnectedLayer (Deep Learning Toolbox)

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

ДаДаДа
globalAveragePooling2dLayer (Deep Learning Toolbox)

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

Да

Да

Нет
globalMaxPooling2dLayer (Deep Learning Toolbox)

2-D глобальный слой максимального объединения

ДаДаНет

groupedConvolution2dLayer (Deep Learning Toolbox)

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

  • Для генерации кода, PaddingValue параметр должен быть равен 0, которое является значением по умолчанию.

Да

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

Да

Нет

gruLayer (Deep Learning Toolbox)

Стробированные периодические модули (GRU) слоя

Да

Да

Да
imageInputLayer (Deep Learning Toolbox)

Входной слой изображения

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

ДаДаДа
leakyReluLayer (Deep Learning Toolbox)

Утечка слоя Rectified Linear Unit (ReLU)

ДаДаНет
lstmLayer (Deep Learning Toolbox)

Долгая краткосрочная память (LSTM) слоя

ДаДаДа
maxPooling2dLayer (Deep Learning Toolbox)

Максимальный слой объединения

ДаДаНет
maxUnpooling2dLayer (Deep Learning Toolbox)

Максимальный слой отмены охлаждения

НетДаНет
multiplicationLayer (Deep Learning Toolbox)

Слой умножения

ДаДаДа
pixelClassificationLayer (Computer Vision Toolbox)

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

ДаДаНет
rcnnBoxRegressionLayer (Computer Vision Toolbox)

Слой регрессии коробки для быстрого и быстрого R-CNN

ДаДаНет
rpnClassificationLayer (Computer Vision Toolbox)

Классификационные слои для сетей области предложений (RPN)

ДаДаНет
regressionLayer (Deep Learning Toolbox)

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

ДаДаДа
reluLayer (Deep Learning Toolbox)

Слой Rectified Linear Unit (ReLU)

ДаДаДа
resize2dLayer(Набор Image Processing Toolbox)2-D изменения размера слояДаДаДа
scalingLayer(Набор Reinforcement Learning Toolbox)Слой масштабирования для сети актёра или критикаДаДаНет
sigmoidLayer (Deep Learning Toolbox)Сигмоидный слойДаДаДа
sequenceFoldingLayer (Deep Learning Toolbox)Последовательность складывания слояДаДаНет
sequenceInputLayer (Deep Learning Toolbox)

Входной слой последовательности

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

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

ДаДаДа
sequenceUnfoldingLayer (Deep Learning Toolbox)Слой развертывания последовательностиДаДаНет
softmaxLayer (Deep Learning Toolbox)

Слой Softmax

Да

Да

Да
softplusLayer(Набор Reinforcement Learning Toolbox)

Слой Softplus для сети актёра или критика

ДаДаДа
spaceToDepthLayer(Набор Image Processing Toolbox)

Пространство на слой глубины

ДаДаНет
ssdMergeLayer (Computer Vision Toolbox)

Слой слияния твердотельных накопителей для обнаружения объектов

ДаДаНет

nnet.keras.layer.FlattenCStyleLayer

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

Да

Да

Нет
nnet.keras.layer.GlobalAveragePooling2dLayer

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

Да

Да

Нет

nnet.keras.layer.SigmoidLayer

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

Да

Да

Нет

nnet.keras.layer.TanhLayer

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

Да

Да

Нет

nnet.keras.layer.ZeroPadding2dLayer

Нулевой слой заполнения для 2-D входа

Да

Да

Нет
nnet.onnx.layer.ElementwiseAffineLayer

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

ДаДаНет

nnet.onnx.layer.FlattenLayer

Плоский слой для ONNX™ сети

Да

Да

Нет

nnet.onnx.layer.IdentityLayer

Слой, который реализует оператор тождеств ONNX

Да

Да

Нет

tanhLayer (Deep Learning Toolbox)

Слой гиперболического тангенса (танх)

Да

Да

Да

transposedConv2dLayer (Deep Learning Toolbox)

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

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

Да

Да

Нет

wordEmbeddingLayer (Symbolic Math Toolbox)

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

Да

Да

Нет

yolov2OutputLayer (Computer Vision Toolbox)

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

Да

Да

Нет

yolov2ReorgLayer (Computer Vision Toolbox)

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

Да

Да

Нет

yolov2TransformLayer (Computer Vision Toolbox)

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

Да

Да

Нет

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

Класс

Описание

Вычислительная библиотека ARM

Intel MKL-DNN

Типовой C/C + +

DAGNetwork (Deep Learning Toolbox)

Ориентированная сеть ациклического графика (DAG) для глубокого обучения

  • Только activations, predict, и classify поддерживаются методы.

Да

Да

Да

dlnetwork (Deep Learning Toolbox)

Нейронная сеть для глубокого обучения для пользовательских циклов обучения

  • Генерация кода поддерживает только InputNames и OutputNames свойства.

  • Генерация кода не поддерживает dlnetwork объекты без входных слоев.

  • Генерация кода для dlnetwork объекты с sequenceInputLayer объекты не поддерживаются.

  • Генерация кода поддерживает только predict функция объекта. The dlarray вход в predict метод должен быть single тип данных.

Да

Да

Нет

SeriesNetwork (Deep Learning Toolbox)

Сеть серии для глубокого обучения

  • Только activations, classify, predict, predictAndUpdateState, classifyAndUpdateState, и resetState поддерживаются функции объекта.

Да

Да

Да

yolov2ObjectDetector (Computer Vision Toolbox)

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

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

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

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

Да

Да

Нет

ssdObjectDetector (Computer Vision Toolbox)

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

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

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

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

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

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

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

Да

Да

Нет

См. также

Похожие темы