MATLAB® Coder™ поддерживает генерацию кода для ряда и направленного графа без петель (DAG) сверточные нейронные сети (CNNs или ConvNets). Можно сгенерировать код для любой обученной сверточной нейронной сети, слои которой поддерживаются для генерации кода. Смотрите Поддерживаемые Слои.
Следующие предварительно обученные сети, доступные в Deep Learning Toolbox™, поддерживаются для генерации кода.
Сетевое имя | Описание | Библиотека ARM® Compute | Intel® MKL-DNN |
---|---|---|---|
AlexNet | AlexNet сверточная нейронная сеть. Для предварительно обученной модели AlexNet смотрите | Да | Да |
GoogLeNet | GoogLeNet сверточная нейронная сеть. Для предварительно обученной модели GoogLeNet смотрите | Да | Да |
Начало-v3 | Начало-v3 сверточная нейронная сеть. Для предварительно обученной модели Начала-v3 смотрите inceptionv3 . | Да | Да |
ResNet | ResNet-50 и сверточные нейронные сети ResNet-101. Для предварительно обученных моделей ResNet смотрите | Да | Да |
SegNet | Мультикласс pixelwise сеть сегментации. Для получения дополнительной информации смотрите | Нет | Да |
SqueezeNet | Маленький, глубокая нейронная сеть. Для предварительно обученных моделей ResNet смотрите | Да | Да |
VGG-16 | VGG-16 сверточная нейронная сеть. Для предварительно обученной модели VGG-16 смотрите | Да | Да |
VGG-19 | VGG-19 сверточная нейронная сеть. Для предварительно обученной модели VGG-19 смотрите | Да | Да |
Следующие слои поддерживаются для генерации кода MATLAB Coder для целевых библиотек глубокого обучения, заданных в таблице.
Если вы устанавливаете Интерфейс MATLAB Coder пакета поддержки для Библиотек Глубокого обучения, можно использовать coder.getDeepLearningLayers
, чтобы видеть список слоев, поддержанных для определенной библиотеки глубокого обучения. Например:
coder.getDeepLearningLayers('mkldnn')
Имя слоя | Описание | ARM вычисляет библиотеку | Intel MKL-DNN |
---|---|---|---|
additionLayer | Слой Addition | Да | Да |
averagePooling2dLayer | Средний слой объединения | Да | Да |
batchNormalizationLayer | Пакетный слой нормализации | Да | Да |
classificationLayer | Создайте классификацию выходной слой | Да | Да |
clippedReluLayer | Отсеченный слой Rectified Linear Unit (ReLU) | Да | Да |
convolution2dLayer | 2D слой свертки | Да | Да |
crop2dLayer | Слой, который применяет 2D обрезку к входу | Нет | Да |
CrossChannelNormalizationLayer | Мудрый каналом локальный слой нормализации ответа | Да | Да |
depthConcatenationLayer | Слой конкатенации глубины | Да | Да |
dropoutLayer | Слой Dropout | Да | Да |
fullyConnectedLayer | Полносвязный слой | Да | Да |
imageInputLayer | Отобразите входной слой | Да | Да |
leakyReluLayer | Текучий слой Rectified Linear Unit (ReLU) | Да | Да |
maxPooling2dLayer | Слой объединения Max | Да | Да |
maxUnpooling2dLayer | Слой необъединения Max | Нет | Да |
pixelClassificationLayer | Создайте слой классификации пикселей для семантической сегментации | Да | Да |
regressionLayer | Создайте регрессию выходной слой | Да | Да |
reluLayer | Слой Rectified Linear Unit (ReLU) | Да | Да |
softmaxLayer | Слой Softmax | Да | Да Смотрите ограничение с MKL-DNN и большими отрицательными входными значениями к слою Softmax |
transposedConv2dLayer | Создайте транспонированный 2D слой свертки | Нет | Да |
nnet.keras.layer.GlobalAveragePooling2dLayer | Глобальный средний слой объединения для пространственных данных | Да | Да |
Сгенерированный код для softmax слоя может быть неправильным (содержите значения NaN
), когда все следующие условия верны:
Вы генерируете код с помощью MKL-DNN.
Сеть является сетью FCN или пользовательской сетью (сеть, которую вы создаете и обучаете).
Вход к softmax слою имеет большую, отрицательную величину. Если softmax слою не предшествует слой ReLU, вход к softmax слою может быть большой, отрицательной величиной.