MATLAB ® Coder™ поддерживает генерацию кода для последовательных, направленных ациклических графов (DAG) и повторяющихся сверточных нейронных сетей (CNN или ConvNets). Можно создать код для любой обученной сверточной нейронной сети, уровни которой поддерживаются для генерации кода. См. раздел Поддерживаемые слои .
Для создания кода поддерживаются следующие предварительно подготовленные сети, доступные в Deep Learning Toolbox™.
| Сетевое имя | Описание | Вычислительная библиотека ARM ® | Intel ® MKL-DNN |
|---|---|---|---|
AlexNet | Сверточная нейронная сеть AlexNet. Для получения информации о предварительно подготовленной модели AlexNet см. | Да | Да |
DarkNet | DarkNet-19 и DarkNet-53 сверточные нейронные сети. Для получения информации о предварительно подготовленных моделях DarkNet см. darknet19 (инструментарий глубокого обучения) и darknet53 (инструментарий глубокого обучения). | Да | Да |
DenseNet-201 | DenseNet-201 сверточная нейронная сеть. Для получения информации о предварительно подготовленной модели DenseNet-201 см. | Да | Да |
EfficientNet-b0 | EfficientNet-b0 сверточная нейронная сеть. Для получения информации о предварительно подготовленной модели EfficientNet-b0 см. | Да | Да |
GoogLeNet | Сверточная нейронная сеть GoogLeNet. Для получения информации о предварительно подготовленной модели GoogLeNet см. | Да | Да |
Inception-ResNet-v2 | Inception-ResNet-v2 сверточная нейронная сеть. Для получения информации о предварительно подготовленной модели Inception-ResNet-v2 см. | Да | Да |
Inception-v3 | Inception-v3 сверточная нейронная сеть. Для получения информации о предварительно подготовленной модели Inception-v3 см. inceptionv3 (инструментарий глубокого обучения). | Да | Да |
MobileNet-v2 | MobileNet-v2 сверточная нейронная сеть. Для получения информации о предварительно подготовленной модели MobileNet-v2 см. | Да | Да |
NASNet-Large | NASNet - Крупная сверточная нейронная сеть. Для получения информации о предварительно подготовленной модели NASNet-Large см. | Да | Да |
NASNet-Mobile | Сверточная нейронная сеть NASNet-Mobile. Для получения информации о предварительно подготовленной модели NASNet-Mobile см. | Да | Да |
ResNet | ResNet-18, ResNet-50 и ResNet-101 сверточные нейронные сети. Для получения информации о предварительно подготовленных моделях ResNet см. | Да | Да |
SegNet | Многоклассная пиксельная сегментационная сеть. Дополнительные сведения см. в разделе | Нет | Да |
SqueezeNet | Небольшая глубокая нейронная сеть. Для получения информации о предварительно подготовленных моделях SqeeeNet см. | Да | Да |
VGG-16 | VGG-16 сверточная нейронная сеть. Для получения информации о предварительно подготовленной модели VGG-16 см. | Да | Да |
VGG-19 | VGG-19 сверточная нейронная сеть. Для получения информации о предварительно подготовленной модели VGG-19 см. | Да | Да |
Xception | Xception сверточная нейронная сеть. Для получения информации о предварительно подготовленной модели Xception см. | Да | Да |
Следующие уровни поддерживаются для генерации кода кодером MATLAB для целевых библиотек глубокого обучения, указанных в таблице.
После установки пакета поддержки MATLAB Coder Interface for Deep Learning Libraries можно использовать coder.getDeepLearningLayers для просмотра списка слоев, поддерживаемых для конкретной библиотеки глубокого обучения. Например:
coder.getDeepLearningLayers('mkldnn')
| Имя слоя | Описание | Вычислительная библиотека ARM | Intel MKL-DNN | Общий C/C + + |
|---|---|---|---|---|
additionLayer (инструментарий для глубокого обучения) | Дополнительный слой | Да | Да | Да |
anchorBoxLayer(Панель инструментов компьютерного зрения) | Слой якорного ящика | Да | Да | Нет |
averagePooling2dLayer (инструментарий для глубокого обучения) | Средний уровень объединения | Да | Да | Нет |
batchNormalizationLayer (инструментарий для глубокого обучения) | Уровень нормализации пакета | Да | Да | Нет |
bilstmLayer (инструментарий для глубокого обучения) | Двунаправленный уровень LSTM | Да | Да | Да |
classificationLayer (инструментарий для глубокого обучения) | Создать выходной слой классификации | Да | Да | Да |
clippedReluLayer (инструментарий для глубокого обучения) | Слой обрезанного выпрямленного линейного блока (ReLU) | Да | Да | Нет |
concatenationLayer (инструментарий для глубокого обучения) | Слой конкатенации | Да | Да | Нет |
convolution2dLayer (инструментарий для глубокого обучения) | 2-D слой свертки
| Да | Да | Нет |
crop2dLayer (инструментарий для глубокого обучения) | Слой, применяемый 2-D обрезки входных данных | Да | Да | Нет |
CrossChannelNormalizationLayer (инструментарий для глубокого обучения) | Уровень нормализации локального отклика по каналам | Да | Да | Нет |
Пользовательские слои | Пользовательские слои с обучаемыми параметрами или без них, определяемые для данной проблемы. См.:
Выходами пользовательского слоя должны быть массивы фиксированного размера. Пользовательские слои в последовательных сетях не поддерживаются для создания кода. Для создания кода пользовательские слои должны содержать | Да | Да | Да |
Пользовательские выходные слои | Все выходные слои, включая пользовательские слои классификации или регрессии, созданные с помощью Пример определения пользовательского выходного слоя классификации и функции потери см. в разделе Определение пользовательского выходного слоя классификации (панель инструментов глубокого обучения). Пример определения пользовательского выходного слоя регрессии и определения функции потери см. в разделе Определение пользовательского выходного слоя регрессии (панель инструментов глубокого обучения). | Да | Да | Да |
depthConcatenationLayer (инструментарий для глубокого обучения) | Слой конкатенации глубины | Да | Да | Нет |
depthToSpace2dLayer(Панель инструментов обработки изображений) | 2-D глубину к слою пространства | Да | Да | Да |
dicePixelClassificationLayer(Панель инструментов компьютерного зрения) | Слой классификации пикселей Dice предоставляет категориальную метку для каждого пикселя изображения или вокселя с использованием обобщенной потери Dice. | Да | Да | Нет |
dropoutLayer (инструментарий для глубокого обучения) | Уровень отсева | Да | Да | Да |
eluLayer (инструментарий для глубокого обучения) | Слой экспоненциальной линейной единицы (ЗЭС) | Да | Да | Нет |
featureInputLayer (инструментарий для глубокого обучения) | Слой ввода элементов | Да | Да | Да |
flattenLayer (инструментарий для глубокого обучения) | Плоский слой | Да | Да | Нет |
focalLossLayer(Панель инструментов компьютерного зрения) | Уровень фокальных потерь предсказывает классы объектов с использованием фокальных потерь. | Да | Да | Нет |
fullyConnectedLayer (инструментарий для глубокого обучения) | Полностью подключенный слой | Да | Да | Да |
globalAveragePooling2dLayer (инструментарий для глубокого обучения) | Уровень глобального среднего объединения пространственных данных | Да | Да | Нет |
globalMaxPooling2dLayer (инструментарий для глубокого обучения) | 2-D уровень глобального максимального пула | Да | Да | Нет |
| 2-D сгруппированный сверточный слой
| Да
| Да | Нет |
| Уровень стробированной рекуррентной установки (ГРУ) | Да | Да | Да |
imageInputLayer (инструментарий для глубокого обучения) | Слой ввода изображения
| Да | Да | Да |
leakyReluLayer (инструментарий для глубокого обучения) | Слой выпрямленного линейного блока с утечкой (ReLU) | Да | Да | Нет |
lstmLayer (инструментарий для глубокого обучения) | Уровень долговременной памяти (LSTM) | Да | Да | Да |
maxPooling2dLayer (инструментарий для глубокого обучения) | Максимальный уровень объединения | Да | Да | Нет |
maxUnpooling2dLayer (инструментарий для глубокого обучения) | Макс. уровень разгрузки | Нет | Да | Нет |
multiplicationLayer (инструментарий для глубокого обучения) | Уровень умножения | Да | Да | Да |
pixelClassificationLayer(Панель инструментов компьютерного зрения) | Создание слоя классификации пикселей для семантической сегментации | Да | Да | Нет |
rcnnBoxRegressionLayer(Панель инструментов компьютерного зрения) | Уровень регрессии коробки для быстрого и более быстрого R-CNN | Да | Да | Нет |
rpnClassificationLayer(Панель инструментов компьютерного зрения) | Классификационный уровень для региональных предлагаемых сетей (РПС) | Да | Да | Нет |
regressionLayer (инструментарий для глубокого обучения) | Создание выходного уровня регрессии | Да | Да | Да |
reluLayer (инструментарий для глубокого обучения) | Слой выпрямленного линейного блока (ReLU) | Да | Да | Да |
resize2dLayer(Панель инструментов обработки изображений) | 2-D изменить размер слоя | Да | Да | Да |
scalingLayer(инструментарий для обучения по усилению) | Уровень масштабирования для сети актеров или критиков | Да | Да | Нет |
sigmoidLayer (инструментарий для глубокого обучения) | Сигмоидный слой | Да | Да | Да |
sequenceFoldingLayer (инструментарий для глубокого обучения) | Последовательность слоев складывания | Да | Да | Нет |
sequenceInputLayer (инструментарий для глубокого обучения) | Входной слой последовательности
| Да | Да | Да |
sequenceUnfoldingLayer (инструментарий для глубокого обучения) | Последовательность развертки слоя | Да | Да | Нет |
softmaxLayer (инструментарий для глубокого обучения) | Слой Softmax | Да | Да | Да |
softplusLayer(инструментарий для обучения по усилению) | Слой Softplus для актера или критика сети | Да | Да | Да |
spaceToDepthLayer(Панель инструментов обработки изображений) | Слой от пространства до глубины | Да | Да | Нет |
ssdMergeLayer(Панель инструментов компьютерного зрения) | Уровень слияния SSD для обнаружения объектов | Да | Да | Нет |
| Распрямляет активации в 1-D, предполагая порядок C-style (строка-мажор) | Да | Да | Нет |
nnet.keras.layer.GlobalAveragePooling2dLayer | Уровень глобального среднего объединения пространственных данных | Да | Да | Нет |
| Слой активации сигмоида | Да | Да | Нет |
| Слой активации гиперболических касательных | Да | Да | Нет |
| Нулевой слой заполнения для ввода 2-D | Да | Да | Нет |
nnet.onnx.layer.ElementwiseAffineLayer | Слой, выполняющий масштабирование входных данных по элементам с последующим добавлением | Да | Да | Нет |
| Плоский слой для ONNX™ сети | Да | Да | Нет |
| Уровень, реализующий оператор идентификации ONNX | Да | Да | Нет |
| Слой гиперболической касательной (tanh) | Да | Да | Да |
| Транспонированный 2-D сверточный слой Генерация кода не поддерживает асимметричную обрезку входных данных. Например, задание вектора | Да | Да | Нет |
| Слой встраивания слов отображает индексы слов в векторы | Да | Да | Нет |
| Уровень вывода для сети обнаружения объектов YOLO v2 | Да | Да | Нет |
| Уровень реорганизации для сети обнаружения объектов YOLO v2 | Да | Да | Нет |
| Уровень преобразования для сети обнаружения объектов YOLO v2 | Да | Да | Нет |
Класс | Описание | Вычислительная библиотека ARM | Intel MKL-DNN | Общий C/C + + |
|---|---|---|---|---|
DAGNetwork (инструментарий для глубокого обучения) | Сеть направленных ациклических графов (DAG) для глубокого обучения
| Да | Да | Да |
dlnetwork (инструментарий для глубокого обучения) | Сеть глубокого обучения для пользовательских циклов обучения
| Да | Да | Нет |
SeriesNetwork (инструментарий для глубокого обучения) | Сеть серии для глубокого обучения
| Да | Да | Да |
|
| Да | Да | Нет |
ssdObjectDetector(Панель инструментов компьютерного зрения) | Объект для обнаружения объектов с помощью SSD-детектора.
| Да | Да | Нет |