主要内容

代码生成支持的网络和层

MATLAB® Coder™ 支持 dlnetwork (Deep Learning Toolbox)、序列和有向无环图 (DAG) 网络的代码生成。您可以为任何使用受支持的深度学习网络、层和类的经过训练的神经网络生成代码。

支持的预训练网络

代码生成支持 Deep Learning Toolbox™ 中提供的以下预训练网络。您可以使用 imagePretrainedNetwork (Deep Learning Toolbox) 函数将这些预训练神经网络作为 dlnetwork (Deep Learning Toolbox) 对象加载,以便生成代码。请注意,代码生成不支持将 imagePretrainedNetwork 函数的名称-值参量 Weights 设置为 "none"。例如,使用以下代码加载预训练的 GoogLeNet 神经网络。

net = imagePretrainedNetwork("googlenet")

您可以使用 analyzeNetworkForCodegen 来查看网络是否兼容特定深度学习库的代码生成。例如:

result = analyzeNetworkForCodegen(imagePretrainedNetwork("googlenet"),TargetLibrary='none')

imagePretrainedNetwork 模型名称参量泛型 C/C++

Intel® MKL-DNN 和

ARM® Compute Library

"alexnet"

"darknet19"

"darknet53"

"densenet201"

"efficientnetb0"

"googlenet"

"inceptionresnetv2"

"inceptionv3"

"mobilenetv2"

"nasnetlarge"

 

"nasnetmobile"

 

"resnet18"

"resnet50"

"resnet101"

"shufflenet"

 

注意

shufflenet 不支持 ARM Compute Library。

"squeezenet"

"vgg16"

"vgg19"

"xception"

支持的层

对于表中指定的目标深度学习库,支持以下层的代码生成。

注意

在下列各表中,信息图标 表示网络、层或类具有有限的代码生成功能。您可能会看到错误和意外行为。有关详细信息,请参阅该网络、层或类页上的“扩展功能”部分。

输入层

泛型 C/C++

Intel MKL-DNN 和

ARM Compute Library

imageInputLayer (Deep Learning Toolbox)

sequenceInputLayer (Deep Learning Toolbox)

featureInputLayer (Deep Learning Toolbox)

卷积和全连接层

泛型 C/C++

Intel MKL-DNN 和

ARM Compute Library

convolution1dLayer (Deep Learning Toolbox)

 

convolution2dLayer (Deep Learning Toolbox)

fullyConnectedLayer (Deep Learning Toolbox)

groupedConvolution2dLayer (Deep Learning Toolbox)

注意

当组的数量等于滤波器通道的数量时,可以为逐通道卷积生成泛型 C/C++ 代码。

transposedConv1dLayer (Deep Learning Toolbox)

 

transposedConv2dLayer (Deep Learning Toolbox)

 

序列层

泛型 C/C++

Intel MKL-DNN 和

ARM Compute Library

bilstmLayer (Deep Learning Toolbox)

flattenLayer (Deep Learning Toolbox)

gruProjectedLayer (Deep Learning Toolbox)

 

gruLayer (Deep Learning Toolbox)

lstmLayer (Deep Learning Toolbox)

lstmProjectedLayer (Deep Learning Toolbox)

 

sequenceInputLayer (Deep Learning Toolbox)

wordEmbeddingLayer (Text Analytics Toolbox)

激活层

泛型 C/C++

Intel MKL-DNN 和

ARM Compute Library

clippedReluLayer (Deep Learning Toolbox)

eluLayer (Deep Learning Toolbox)

gelu (Deep Learning Toolbox)

geluLayer (Deep Learning Toolbox)

leakyReluLayer (Deep Learning Toolbox)

preluLayer (Deep Learning Toolbox)

reluLayer (Deep Learning Toolbox)

sigmoidLayer (Deep Learning Toolbox)

softmaxLayer (Deep Learning Toolbox)

softplusLayer (Deep Learning Toolbox)

swishLayer (Deep Learning Toolbox)

tanhLayer (Deep Learning Toolbox)

归一化层

泛型 C/C++

Intel MKL-DNN 和

ARM Compute Library

batchNormalizationLayer (Deep Learning Toolbox)

crossChannelNormalizationLayer (Deep Learning Toolbox)

 

instanceNormalizationLayer (Deep Learning Toolbox)

layerNormalizationLayer (Deep Learning Toolbox)

groupNormalizationLayer (Deep Learning Toolbox)

实用工具层

泛型 C/C++

Intel MKL-DNN 和

ARM Compute Library

crop2dLayer (Deep Learning Toolbox)

dropoutLayer (Deep Learning Toolbox)

istftLayer (Signal Processing Toolbox)

 

modwtLayer (Wavelet Toolbox)

 

reshapeLayer (Deep Learning Toolbox)

 

scalingLayer (Deep Learning Toolbox)

spatialDropoutLayer (Deep Learning Toolbox)

stftLayer (Signal Processing Toolbox)

 

调整层大小

泛型 C/C++

Intel MKL-DNN 和

ARM Compute Library

resize2dLayer (Image Processing Toolbox)

池化和去池化层

泛型 C/C++

Intel MKL-DNN 和

ARM Compute Library

adaptiveAveragePooling2dLayer (Deep Learning Toolbox)

averagePooling1dLayer (Deep Learning Toolbox)

 

averagePooling2dLayer (Deep Learning Toolbox)

globalAveragePooling1dLayer (Deep Learning Toolbox)

 

globalAveragePooling2dLayer (Deep Learning Toolbox)

globalMaxPooling1dLayer (Deep Learning Toolbox)

 

globalMaxPooling2dLayer (Deep Learning Toolbox)

maxPooling1dLayer (Deep Learning Toolbox)

 

maxPooling2dLayer (Deep Learning Toolbox)

maxUnpooling2dLayer (Deep Learning Toolbox)

 

注意

maxUnpooling2dLayer 不支持 ARM Compute Library。

组合层

泛型 C/C++

Intel MKL-DNN 和

ARM Compute Library

additionLayer (Deep Learning Toolbox)

concatenationLayer (Deep Learning Toolbox)

depthConcatenationLayer (Deep Learning Toolbox)

multiplicationLayer (Deep Learning Toolbox)

变换器层

泛型 C/C++

Intel MKL-DNN 和

ARM Compute Library

AttentionLayer (Deep Learning Toolbox)

 

embeddingConcatenationLayer (Deep Learning Toolbox)

 

indexing1dLayer (Deep Learning Toolbox)

 

patchEmbeddingLayer (Computer Vision Toolbox)

 

PositionEmbeddingLayer (Deep Learning Toolbox)

 

selfAttentionLayer (Deep Learning Toolbox)

 

计算机视觉和图像处理层

泛型 C/C++

Intel MKL-DNN 和

ARM Compute Library

depthToSpace2dLayer (Image Processing Toolbox)

patchEmbeddingLayer (Computer Vision Toolbox)

 

spaceToDepthLayer (Image Processing Toolbox)

ssdMergeLayer (Computer Vision Toolbox)

resize2dLayer (Image Processing Toolbox)

yolov2TransformLayer (Computer Vision Toolbox)

自定义层

泛型 C/C++

Intel MKL-DNN 和

ARM Compute Library

Custom layers

 更多信息

 代码生成限制

Custom Output Layer (Deep Learning Toolbox)

 更多信息

自定义 Keras 层

泛型 C/C++

Intel MKL-DNN 和

ARM Compute Library

nnet.keras.layer.ClipLayer (Deep Learning Toolbox)

nnet.keras.layer.FlattenCStyleLayer (Deep Learning Toolbox)

nnet.keras.layer.GlobalAveragePooling2dLayer (Deep Learning Toolbox)

nnet.keras.layer.PreluLayer (Deep Learning Toolbox)

nnet.keras.layer.SigmoidLayer (Deep Learning Toolbox)

nnet.keras.layer.TanhLayer (Deep Learning Toolbox)

nnet.keras.layer.TimeDistributedFlattenCStyleLayer (Deep Learning Toolbox)

nnet.keras.layer.ZeroPadding2dLayer (Deep Learning Toolbox)

自定义 ONNX 层

泛型 C/C++

Intel MKL-DNN 和

ARM Compute Library

nnet.onnx.layer.ClipLayer (Deep Learning Toolbox)

nnet.onnx.layer.ElementwiseAffineLayer (Deep Learning Toolbox)

nnet.onnx.layer.FlattenInto2dLayer (Deep Learning Toolbox)

nnet.onnx.layer.FlattenLayer (Deep Learning Toolbox)

nnet.onnx.layer.GlobalAveragePooling2dLayer (Deep Learning Toolbox)

nnet.onnx.layer.IdentityLayer (Deep Learning Toolbox)

nnet.onnx.layer.PreluLayer (Deep Learning Toolbox)

nnet.onnx.layer.SigmoidLayer (Deep Learning Toolbox)

nnet.onnx.layer.TanhLayer (Deep Learning Toolbox)

nnet.onnx.layer.VerifyBatchSizeLayer (Deep Learning Toolbox)

支持的类

泛型 C/C++

Intel MKL-DNN 和

ARM Compute Library

dlnetwork (Deep Learning Toolbox)

DAGNetwork (Deep Learning Toolbox)

pointPillarsObjectDetector (Lidar Toolbox)

SeriesNetwork (Deep Learning Toolbox)

ssdObjectDetector (Computer Vision Toolbox)

yolov2ObjectDetector (Computer Vision Toolbox)

 

yolov3ObjectDetector (Computer Vision Toolbox)

yolov4ObjectDetector (Computer Vision Toolbox)

yoloxObjectDetector (Computer Vision Toolbox)

peopleDetector (Computer Vision Toolbox) (自 R2025a 起)

 

另请参阅

(Deep Learning Toolbox) |

主题