主要内容

代码生成支持的网络和层万博1manbetx

MATLAB®编码器™万博1manbetx支持序列、有向无环图(DAG)和循环卷积神经网络(cnn或ConvNets)的代码生成。您可以为任何经过训练的卷积神经网络生成代码,其层支持代码生成。万博1manbetx看到万博1manbetx支持层

万博1manbetx支持的预训练网络

下面是深度学习工具箱™中提供的预训练网络,支持代码生成。万博1manbetx

网络名称 描述 手臂®计算库 英特尔®MKL-DNN
AlexNet

AlexNet卷积神经网络。有关预训练的AlexNet模型,请参见alexnet(深度学习工具箱)

是的 是的
DarkNet DarkNet-19和DarkNet-53卷积神经网络。有关预训练的暗网模型,请参见darknet19(深度学习工具箱)而且darknet53(深度学习工具箱) 是的 是的
densenet - 201

DenseNet-201卷积神经网络。预训练的DenseNet-201模型请参见densenet201(深度学习工具箱)

是的 是的
EfficientNet-b0

卷积神经网络。有关预训练的EfficientNet-b0模型,请参见efficientnetb0(深度学习工具箱)

是的 是的
GoogLeNet

GoogLeNet卷积神经网络。有关预训练的GoogLeNet模型,请参见googlenet(深度学习工具箱)

是的 是的
Inception-ResNet-v2

Inception-ResNet-v2卷积神经网络。有关预训练的Inception-ResNet-v2模型,请参见inceptionresnetv2(深度学习工具箱)

是的 是的
Inception-v3 Inception-v3卷积神经网络。有关预训练的Inception-v3模型,请参见inceptionv3(深度学习工具箱) 是的 是的
MobileNet-v2

MobileNet-v2卷积神经网络。有关预训练的MobileNet-v2模型,请参见mobilenetv2(深度学习工具箱)

是的 是的
NASNet-Large

NASNet-Large卷积神经网络。有关预训练的NASNet-Large模型,请参见nasnetlarge(深度学习工具箱)

是的 是的
NASNet-Mobile

NASNet-Mobile卷积神经网络。有关预训练的NASNet-Mobile模型,请参见nasnetmobile(深度学习工具箱)

是的 是的
ResNet

ResNet-18, ResNet-50和ResNet-101卷积神经网络。有关预训练的ResNet模型,请参见resnet18(深度学习工具箱)resnet50(深度学习工具箱),resnet101(深度学习工具箱)

是的 是的
SegNet

多类像素分割网络。有关更多信息,请参见segnetLayers(计算机视觉工具箱)

没有 是的
SqueezeNet

小型深度神经网络。有关预训练的SqeezeNet模型,请参见squeezenet(深度学习工具箱)

是的 是的
VGG-16

VGG-16卷积神经网络。预训练的vg -16模型请参见vgg16(深度学习工具箱)

是的 是的
VGG-19

VGG-19卷积神经网络。预训练的VGG-19模型请参见vgg19(深度学习工具箱)

是的 是的
Xception

卷积神经网络除外。有关预训练的xcexception模型,请参见xception(深度学习工具箱)

是的 是的

万博1manbetx支持层

代码生成支持以下层万博1manbetxMATLAB编码器用于表中指定的目标深度学习库。

一旦你安装了支持包万博1manbetx深度学习库的MATLAB编码器接口,你可以使用analyzeNetworkForCodegen查看网络是否与特定深度学习库的代码生成兼容。例如:

result = analyzeNetworkForCodegen(mobilenetv2,TargetLibrary =“mkldnn”

请注意

从R2022b开始,检查深度学习网络的代码生成兼容性analyzeNetworkForCodegen函数。coder.getDeepLearningLayers不建议使用。

层的名字 描述 ARM计算库 英特尔MKL-DNN 通用的C / c++
additionLayer(深度学习工具箱)

添加层

是的 是的 是的
anchorBoxLayer(计算机视觉工具箱)

锚箱层

是的 是的

是的

averagePooling2dLayer(深度学习工具箱)

平均池化层

是的 是的

是的

batchNormalizationLayer(深度学习工具箱)

批处理规范化层

是的 是的 是的
bilstmLayer(深度学习工具箱) 双向LSTM层 是的 是的 是的
classificationLayer(深度学习工具箱)

创建分类输出层

是的 是的 是的
clippedReluLayer(深度学习工具箱)

剪切整流线性单元(ReLU)层

是的 是的 是的
concatenationLayer(深度学习工具箱)

连接层

是的 是的 是的
convolution2dLayer(深度学习工具箱)

二维卷积层

  • 对于代码生成,使用PaddingValue参数必须等于0,为默认值。

是的

是的

是的
crop2dLayer(深度学习工具箱)

对输入应用2-D裁剪的图层

是的 是的 没有
CrossChannelNormalizationLayer(深度学习工具箱)

信道局部响应归一化层

是的 是的 没有

自定义图层

自定义层,包含或不包含您为问题定义的可学习参数。

看到的:

自定义层的输出必须是固定大小的数组。

序列网络中的自定义层仅支持通用C/ c++代码生成。万博1manbetx

对于代码生成,自定义层必须包含% # codegen编译指示。

你可以通过dlarray自定义层,如果:

  • 自定义层已经加入dlnetwork

  • 自定义层位于DAG或系列网络中,可以继承自nnet.layer.Formattable或者没有反向传播。

对于不支持的万博1manbetxdlarray方法,然后必须从dlarray,进行计算,并将数据重建回dlarray用于代码生成。例如,

函数Z = predict(图层,X)如果coder.target (MATLAB的) Z = doppredict (X);其他的如果isdarray (X) X1 = extractdata(X);Z1 = doppredict (X1);Z = dlarray(Z1);其他的Z = doppredict (X);结束结束结束

是的

是的

是的

序列网络中的自定义层仅支持通用C/ c++代码生成。万博1manbetx

自定义输出层

所有输出层,包括自定义分类或回归输出层nnet.layer.ClassificationLayernnet.layer.RegressionLayer

有关显示如何定义自定义分类输出层和指定损失函数的示例,请参见定义自定义分类输出层(深度学习工具箱)

有关显示如何定义自定义回归输出层和指定损失函数的示例,请参见定义自定义回归输出层(深度学习工具箱)

是的

是的

是的
depthConcatenationLayer(深度学习工具箱)

深度拼接层

是的

是的

是的

depthToSpace2dLayer(图像处理工具箱) 二维深度到空间层 是的 是的 是的
dicePixelClassificationLayer(计算机视觉工具箱)

Dice像素分类层使用广义Dice损失为每个图像像素或体素提供分类标签。

是的 是的 没有
dropoutLayer(深度学习工具箱)

辍学层

是的 是的 是的
eluLayer(深度学习工具箱)

指数线性单元(ELU)层

是的 是的 是的
featureInputLayer(深度学习工具箱)

特征输入层

是的 是的 是的
flattenLayer(深度学习工具箱)

平层

是的 是的

是的

focalLossLayer(计算机视觉工具箱) 焦点损失层使用焦点损失预测对象类别。 是的 是的

是的

fullyConnectedLayer(深度学习工具箱)

全连接层

是的 是的 是的
globalAveragePooling2dLayer(深度学习工具箱)

空间数据的全局平均池化层

是的

是的

是的

globalMaxPooling2dLayer(深度学习工具箱)

2d全局最大池化层

是的 是的

是的

groupedConvolution2dLayer(深度学习工具箱)

二维分组卷积层

  • 对于代码生成,使用PaddingValue参数必须等于0,为默认值。

是的

  • 如果指定一个整数numGroups,则该值必须小于或等于2

是的

没有

groupNormalizationLayer(深度学习工具箱)

组归一化层

是的

是的

是的

gruLayer(深度学习工具箱)

门控循环单元(GRU)层

是的

是的

是的
imageInputLayer(深度学习工具箱)

图像输入层

  • 不支持代码生成万博1manbetx“归一化”使用函数句柄指定。

是的 是的 是的
leakyReluLayer(深度学习工具箱)

漏流整流线性单元(ReLU)层

是的 是的 是的
lstmLayer(深度学习工具箱)

长短期记忆层

是的 是的 是的
lstmProjectedLayer(深度学习工具箱)

LSTM投影层

没有 没有 是的
maxPooling2dLayer(深度学习工具箱)

最大池化层

如果在内核窗口的非对角线上存在相同的最大值,则maxPooling2dLayer可能会导致MATLAB和生成的代码之间的数值不匹配。此问题还会导致每个池化区域中最大值的索引不匹配。有关更多信息,请参见maxPooling2dLayer(深度学习工具箱)

是的 是的 是的
maxUnpooling2dLayer(深度学习工具箱)

最大脱池层

如果在内核窗口的非对角线上存在相同的最大值,则maxPooling2dLayer可能会导致MATLAB和生成的代码之间的数值不匹配。此问题还会导致每个池化区域中最大值的索引不匹配。有关更多信息,请参见maxUnpooling2dLayer(深度学习工具箱)

没有 是的 没有
multiplicationLayer(深度学习工具箱)

乘法层

是的 是的 是的
pixelClassificationLayer(计算机视觉工具箱)

创建像素分类层进行语义分割

是的 是的 没有
rcnnBoxRegressionLayer(计算机视觉工具箱)

快速和快速R-CNN的盒回归层

是的 是的

是的

rpnClassificationLayer(计算机视觉工具箱)

区域提议网络的分类层

是的 是的 没有
regressionLayer(深度学习工具箱)

创建一个回归输出层

是的 是的 是的
reluLayer(深度学习工具箱)

整流线性单元(ReLU)层

是的 是的 是的
resize2dLayer(图像处理工具箱) 2-D调整图层 是的 是的 是的
scalingLayer(强化学习工具箱) 演员或评论家网络的缩放层 是的 是的 是的
sigmoidLayer(深度学习工具箱) 乙状结肠层 是的 是的 是的
sequenceFoldingLayer(深度学习工具箱) 序列折叠层 是的 是的 没有
sequenceInputLayer(深度学习工具箱)

序列输入层

  • 对于矢量序列输入,在代码生成过程中特征的数量必须是一个常数。

  • 不支持代码生成万博1manbetx“归一化”使用函数句柄指定。

是的 是的 是的
sequenceUnfoldingLayer(深度学习工具箱) 序列展开层 是的 是的 没有
softmaxLayer(深度学习工具箱)

Softmax层

是的

是的

是的
softplusLayer(强化学习工具箱)

演员或评论家网络的软加层

是的 是的 是的
spaceToDepthLayer(图像处理工具箱)

空间到深度层

是的 是的 没有
ssdMergeLayer(计算机视觉工具箱)

用于对象检测的SSD合并层

是的 是的

是的

swishLayer(深度学习工具箱)

时髦的层

是的 是的 是的

nnet.keras.layer.ClipLayer

在上界和下界之间剪辑输入

是的 是的 是的

nnet.keras.layer.FlattenCStyleLayer

将激活压扁为1-D,假设c风格(行为主)顺序

是的

是的

是的
nnet.keras.layer.GlobalAveragePooling2dLayer

空间数据的全局平均池化层

是的

是的

是的

nnet.keras.layer.PreluLayer

参数整流线性单元

是的 是的 是的

nnet.keras.layer.SigmoidLayer

Sigmoid激活层

是的

是的

是的

nnet.keras.layer.TanhLayer

双曲正切激活层

是的

是的

是的

nnet.keras.layer.TimeDistributedFlattenCStyleLayer

将输入图像序列平展为向量序列,假设输入层的存储顺序为c风格(或行为主)

是的 是的 是的

nnet.keras.layer.ZeroPadding2dLayer

零填充层为2-D输入

是的

是的

是的

nnet.onnx.layer.ClipLayer

在上界和下界之间剪辑输入

是的 是的 是的
nnet.onnx.layer.ElementwiseAffineLayer

层,该层执行按元素缩放输入,然后执行加法

是的 是的 是的

nnet.onnx.layer.FlattenInto2dLayer

以ONNX的方式平展MATLAB 2D图像批处理,生成一个2D输出数组CB格式

是的 是的 是的

nnet.onnx.layer.FlattenLayer

用于ONNX™网络的平层

是的

是的

是的

nnet.onnx.layer.GlobalAveragePooling2dLayer

空间数据的全局平均池化层

是的 是的 是的

nnet.onnx.layer.IdentityLayer

实现ONNX标识运算符的层

是的

是的

是的

nnet.onnx.layer.PreluLayer

参数整流线性单元

是的 是的 是的

nnet.onnx.layer.SigmoidLayer

Sigmoid激活层

是的 是的 是的

nnet.onnx.layer.TanhLayer

双曲正切激活层

是的 是的 是的

nnet.onnx.layer.VerifyBatchSizeLayer

验证固定批量大小

是的 是的 是的

tanhLayer(深度学习工具箱)

双曲正切(tanh)层

是的

是的

是的

transposedConv2dLayer(深度学习工具箱)

转置二维卷积层

代码生成不支持输入的不对称裁剪。万博1manbetx例如,指定一个向量[t b l r]“种植”参数不支持对输入的顶部、底部、左侧和右侧进行裁剪。万博1manbetx

是的

是的

没有

wordEmbeddingLayer(文本分析工具箱)

单词嵌入层将单词索引映射到向量

是的

是的

没有

yolov2OutputLayer(计算机视觉工具箱)

输出层为YOLO v2对象检测网络

是的

是的

没有

yolov2ReorgLayer(计算机视觉工具箱)

YOLO v2对象检测网络的重组层

是的

是的

没有

yolov2TransformLayer(计算机视觉工具箱)

转换层为YOLO v2对象检测网络

是的

是的

没有

万博1manbetx支持类

描述

ARM计算库

英特尔MKL-DNN

通用的C / c++

DAGNetwork(深度学习工具箱)

有向无环图(DAG)网络用于深度学习

  • 只有激活预测,分类方法。万博1manbetx

是的

是的

是的

dlnetwork(深度学习工具箱)

用于定制训练循环的深度学习网络

  • 代码生成仅支持万博1manbetxInputNames而且OutputNames属性。

  • 初始化的属性dlnetwork对象必须设置为true。

  • 您可以为dlnetwork有矢量或图像序列输入。对于ARM计算,dlnetwork可以有序列和非序列输入层。对于Intel mml - dnn,输入层必须全部为序列输入层。代码生成支持包括:万博1manbetx

    • dlarray包含向量序列“CT”“认知行为治疗”数据格式。

    • dlarray包含的图像序列“SSCT”“SSCBT”数据格式。

    • 多输入dlnetwork使用异构输入层。对于RNN网络,不支持多输入。万博1manbetx

  • 代码生成仅支持万博1manbetx预测对象的功能。的dlarray输入预测方法必须为数据类型。

  • 代码生成支持MIMO万博1manbetxdlnetworks

  • 要创建dlnetwork对象进行代码生成,请参见为代码生成加载预训练的网络

是的

是的

是的

SeriesNetwork(深度学习工具箱)

深度学习系列网络

  • 只有激活分类预测predictAndUpdateStateclassifyAndUpdateState,resetState支持对象函数。万博1manbetx

是的

是的

是的

yolov2ObjectDetector(计算机视觉工具箱)

使用YOLO v2对象检测器检测对象

  • 只有检测(计算机视觉工具箱)方法yolov2ObjectDetector支持代万博1manbetx码生成。

  • roi的参数检测方法必须是代码生成常量(coder.const ())和一个1x4向量。

  • 只有阈值SelectStrongestMinSize,最大尺寸名称-值对检测都受支持万博1manbetx。

是的

是的

没有

yolov3ObjectDetector(计算机视觉工具箱)

使用YOLO v3对象检测器检测对象

  • 只有检测(计算机视觉工具箱)方法yolov3ObjectDetector支持代万博1manbetx码生成。

  • roi的参数检测方法必须是代码生成常量(coder.const ())和一个1x4向量。

  • 只有阈值SelectStrongestMinSize,最大尺寸名称-值对检测都受支持万博1manbetx。

是的

是的

是的

yolov4ObjectDetector(计算机视觉工具箱)

使用YOLO v4对象检测器检测对象

  • roi的参数检测方法必须是代码生成常量(coder.const ())和一个1x4向量。

  • 只有阈值SelectStrongestMinSize最大尺寸,MiniBatchSize名称-值对检测都受支持万博1manbetx。

是的

是的

是的

ssdObjectDetector(计算机视觉工具箱)

对象,使用基于ssd的检测器检测对象。

  • 只有检测(计算机视觉工具箱)方法ssdObjectDetector支持代万博1manbetx码生成。

  • roi的参数检测方法必须是编码原常量(coder.const ())和一个1x4向量。

  • 只有阈值SelectStrongestMinSize最大尺寸,MiniBatchSize支持名称-值对。万博1manbetx所有的名称-值对必须是编译时常量。

  • 输入图像的通道和批量大小必须是固定大小。

  • 标签输出作为分类数组返回。

  • 在生成的代码中,输入被重新缩放到网络输入层的大小。但是这个包围框检测方法返回的值是参考原始输入的大小。

是的

是的

是的

pointPillarsObjectDetector(激光雷达工具箱)

PointPillars网络用于检测激光雷达点云中的物体

  • 只有检测方法pointPillarsObjectDetector支持代万博1manbetx码生成。

  • 只有阈值SelectStrongest,MiniBatchSize的名称-值对检测方法。万博1manbetx

是的

是的

没有

int8代码生成

您可以将深度学习工具箱与深度学习工具箱模型量化库支持包结合使用,通过将卷积层的权重、偏差和激活量化为8位缩放整数数据类型来减少深度神经网络的内存占用。万博1manbetx然后,你可以使用MATLAB编码器为网络生成优化的代码。看到为深度学习网络生成int8代码

另请参阅

相关的话题