exponenta event banner

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

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

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

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

Сетевое имяОписаниеВычислительная библиотека ARM ®Intel ® MKL-DNN
AlexNet

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

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

DenseNet-201 сверточная нейронная сеть. Для получения информации о предварительно подготовленной модели DenseNet-201 см. densenet201 (инструментарий глубокого обучения).

ДаДа
EfficientNet-b0

EfficientNet-b0 сверточная нейронная сеть. Для получения информации о предварительно подготовленной модели EfficientNet-b0 см. efficientnetb0 (инструментарий глубокого обучения).

ДаДа
GoogLeNet

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

ДаДа
Inception-ResNet-v2

Inception-ResNet-v2 сверточная нейронная сеть. Для получения информации о предварительно подготовленной модели Inception-ResNet-v2 см. inceptionresnetv2 (инструментарий глубокого обучения).

ДаДа
Inception-v3Inception-v3 сверточная нейронная сеть. Для получения информации о предварительно подготовленной модели Inception-v3 см. inceptionv3 (инструментарий глубокого обучения).ДаДа
MobileNet-v2

MobileNet-v2 сверточная нейронная сеть. Для получения информации о предварительно подготовленной модели MobileNet-v2 см. mobilenetv2 (инструментарий глубокого обучения).

ДаДа
NASNet-Large

NASNet - Крупная сверточная нейронная сеть. Для получения информации о предварительно подготовленной модели NASNet-Large см. nasnetlarge (инструментарий глубокого обучения).

ДаДа
NASNet-Mobile

Сверточная нейронная сеть NASNet-Mobile. Для получения информации о предварительно подготовленной модели NASNet-Mobile см. nasnetmobile (инструментарий глубокого обучения).

ДаДа
ResNet

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

ДаДа
SegNet

Многоклассная пиксельная сегментационная сеть. Дополнительные сведения см. в разделе segnetLayers(Панель инструментов компьютерного зрения).

НетДа
SqueezeNet

Небольшая глубокая нейронная сеть. Для получения информации о предварительно подготовленных моделях SqeeeNet см. squeezenet (инструментарий глубокого обучения).

ДаДа
VGG-16

VGG-16 сверточная нейронная сеть. Для получения информации о предварительно подготовленной модели VGG-16 см. vgg16 (инструментарий глубокого обучения).

ДаДа
VGG-19

VGG-19 сверточная нейронная сеть. Для получения информации о предварительно подготовленной модели VGG-19 см. vgg19 (инструментарий глубокого обучения).

ДаДа
Xception

Xception сверточная нейронная сеть. Для получения информации о предварительно подготовленной модели Xception см. xception (инструментарий глубокого обучения).

ДаДа

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

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

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

coder.getDeepLearningLayers('mkldnn')

Имя слояОписаниеВычислительная библиотека ARMIntel MKL-DNNОбщий C/C + +
additionLayer (инструментарий для глубокого обучения)

Дополнительный слой

ДаДаДа
anchorBoxLayer(Панель инструментов компьютерного зрения)

Слой якорного ящика

ДаДаНет
averagePooling2dLayer (инструментарий для глубокого обучения)

Средний уровень объединения

ДаДаНет
batchNormalizationLayer (инструментарий для глубокого обучения)

Уровень нормализации пакета

ДаДаНет
bilstmLayer (инструментарий для глубокого обучения)Двунаправленный уровень LSTMДаДаДа
classificationLayer (инструментарий для глубокого обучения)

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

ДаДаДа
clippedReluLayer (инструментарий для глубокого обучения)

Слой обрезанного выпрямленного линейного блока (ReLU)

ДаДаНет
concatenationLayer (инструментарий для глубокого обучения)

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

ДаДаНет
convolution2dLayer (инструментарий для глубокого обучения)

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

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

Да

Да

Нет
crop2dLayer (инструментарий для глубокого обучения)

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

ДаДаНет
CrossChannelNormalizationLayer (инструментарий для глубокого обучения)

Уровень нормализации локального отклика по каналам

ДаДаНет

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

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

См.:

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

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

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

Да

ДаДа

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

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

Пример определения пользовательского выходного слоя классификации и функции потери см. в разделе Определение пользовательского выходного слоя классификации (панель инструментов глубокого обучения).

Пример определения пользовательского выходного слоя регрессии и определения функции потери см. в разделе Определение пользовательского выходного слоя регрессии (панель инструментов глубокого обучения).

Да

Да

Да
depthConcatenationLayer (инструментарий для глубокого обучения)

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

Да

Да

Нет
depthToSpace2dLayer(Панель инструментов обработки изображений)2-D глубину к слою пространстваДаДаДа
dicePixelClassificationLayer(Панель инструментов компьютерного зрения)

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

ДаДаНет
dropoutLayer (инструментарий для глубокого обучения)

Уровень отсева

ДаДаДа
eluLayer (инструментарий для глубокого обучения)

Слой экспоненциальной линейной единицы (ЗЭС)

ДаДаНет
featureInputLayer (инструментарий для глубокого обучения)

Слой ввода элементов

ДаДаДа
flattenLayer (инструментарий для глубокого обучения)

Плоский слой

ДаДаНет
focalLossLayer(Панель инструментов компьютерного зрения)Уровень фокальных потерь предсказывает классы объектов с использованием фокальных потерь.ДаДаНет
fullyConnectedLayer (инструментарий для глубокого обучения)

Полностью подключенный слой

ДаДаДа
globalAveragePooling2dLayer (инструментарий для глубокого обучения)

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

Да

Да

Нет
globalMaxPooling2dLayer (инструментарий для глубокого обучения)

2-D уровень глобального максимального пула

ДаДаНет

groupedConvolution2dLayer (инструментарий для глубокого обучения)

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

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

Да

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

Да

Нет

gruLayer (инструментарий для глубокого обучения)

Уровень стробированной рекуррентной установки (ГРУ)

Да

Да

Да
imageInputLayer (инструментарий для глубокого обучения)

Слой ввода изображения

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

ДаДаДа
leakyReluLayer (инструментарий для глубокого обучения)

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

ДаДаНет
lstmLayer (инструментарий для глубокого обучения)

Уровень долговременной памяти (LSTM)

ДаДаДа
maxPooling2dLayer (инструментарий для глубокого обучения)

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

ДаДаНет
maxUnpooling2dLayer (инструментарий для глубокого обучения)

Макс. уровень разгрузки

НетДаНет
multiplicationLayer (инструментарий для глубокого обучения)

Уровень умножения

ДаДаДа
pixelClassificationLayer(Панель инструментов компьютерного зрения)

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

ДаДаНет
rcnnBoxRegressionLayer(Панель инструментов компьютерного зрения)

Уровень регрессии коробки для быстрого и более быстрого R-CNN

ДаДаНет
rpnClassificationLayer(Панель инструментов компьютерного зрения)

Классификационный уровень для региональных предлагаемых сетей (РПС)

ДаДаНет
regressionLayer (инструментарий для глубокого обучения)

Создание выходного уровня регрессии

ДаДаДа
reluLayer (инструментарий для глубокого обучения)

Слой выпрямленного линейного блока (ReLU)

ДаДаДа
resize2dLayer(Панель инструментов обработки изображений)2-D изменить размер слояДаДаДа
scalingLayer(инструментарий для обучения по усилению)Уровень масштабирования для сети актеров или критиковДаДаНет
sigmoidLayer (инструментарий для глубокого обучения)Сигмоидный слойДаДаДа
sequenceFoldingLayer (инструментарий для глубокого обучения)Последовательность слоев складыванияДаДаНет
sequenceInputLayer (инструментарий для глубокого обучения)

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

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

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

ДаДаДа
sequenceUnfoldingLayer (инструментарий для глубокого обучения)Последовательность развертки слояДаДаНет
softmaxLayer (инструментарий для глубокого обучения)

Слой Softmax

Да

Да

Да
softplusLayer(инструментарий для обучения по усилению)

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

ДаДаДа
spaceToDepthLayer(Панель инструментов обработки изображений)

Слой от пространства до глубины

ДаДаНет
ssdMergeLayer(Панель инструментов компьютерного зрения)

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

ДаДаНет

nnet.keras.layer.FlattenCStyleLayer

Распрямляет активации в 1-D, предполагая порядок C-style (строка-мажор)

Да

Да

Нет
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 (инструментарий для глубокого обучения)

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

Да

Да

Да

transposedConv2dLayer (инструментарий для глубокого обучения)

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

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

Да

Да

Нет

wordEmbeddingLayer(Панель инструментов для анализа текста)

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

Да

Да

Нет

yolov2OutputLayer(Панель инструментов компьютерного зрения)

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

Да

Да

Нет

yolov2ReorgLayer(Панель инструментов компьютерного зрения)

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

Да

Да

Нет

yolov2TransformLayer(Панель инструментов компьютерного зрения)

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

Да

Да

Нет

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

Класс

Описание

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

Intel MKL-DNN

Общий C/C + +

DAGNetwork (инструментарий для глубокого обучения)

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

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

Да

Да

Да

dlnetwork (инструментарий для глубокого обучения)

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

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

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

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

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

Да

Да

Нет

SeriesNetwork (инструментарий для глубокого обучения)

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

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

Да

Да

Да

yolov2ObjectDetector(Панель инструментов компьютерного зрения)

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

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

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

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

Да

Да

Нет

ssdObjectDetector(Панель инструментов компьютерного зрения)

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

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

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

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

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

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

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

Да

Да

Нет

См. также

Связанные темы