代码生成支持的网络和层
MATLAB®编码器™支持序列、有向无环图(DAG)和循环卷积神经网络(CNNs或ConvNets)的代码生成。您可以为任何经过训练的卷积神经网络生成代码,其层支持代码生成。看到支持层.
支持Pretrained网络
以下在深度学习工具箱™中提供的预训练网络支持代码生成。
网络名称 | 描述 | 手臂®计算库 | 英特尔®MKL-DNN |
---|---|---|---|
AlexNet |
AlexNet卷积神经网络。关于预训练的AlexNet模型,请参见 |
是的 | 是的 |
DarkNet |
DarkNet-19和DarkNet-53卷积神经网络。有关预先训练的暗网模型,请参见darknet19 (深度学习工具箱)而且darknet53 (深度学习工具箱). |
是的 | 是的 |
densenet - 201 |
DenseNet-201卷积神经网络。关于预先训练的DenseNet-201模型,请参见 |
是的 | 是的 |
EfficientNet-b0 |
efficient -b0卷积神经网络。有关预先训练的effecentnet -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-Large模型,请参见 |
是的 | 是的 |
NASNet-Mobile |
移动卷积神经网络。有关预先训练的NASNet-Mobile模型,请参见 |
是的 | 是的 |
ResNet |
ResNet-18, ResNet-50和ResNet-101卷积神经网络。有关预先训练的ResNet模型,请参见 |
是的 | 是的 |
SegNet |
多类像素分割网络。有关更多信息,请参见 |
没有 | 是的 |
SqueezeNet |
小型的深度神经网络。有关预先训练的SqeezeNet模型,请参见 |
是的 | 是的 |
VGG-16 |
VGG-16卷积神经网络。对于预先训练的VGG-16模型,请参见 |
是的 | 是的 |
VGG-19 |
VGG-19卷积神经网络。预先训练的VGG-19模型,见 |
是的 | 是的 |
Xception |
卷积神经网络例外。有关预训练的Xception模型,请参见 |
是的 | 是的 |
支持层
支持以下层来生成代码MATLAB编码器对于表中指定的目标深度学习库。
一旦你安装了支持包深度学习库的MATLAB编码器接口,你可以使用analyzeNetworkForCodegen
看看网络是否与特定深度学习库的代码生成兼容。例如:
结果= analyzeNetworkForCodegen(mobilenetv2,TargetLibrary =“mkldnn”)
请注意
从R2022b开始,检查深度学习网络的代码生成兼容性analyzeNetworkForCodegen
函数。coder.getDeepLearningLayers
不推荐。
层的名字 | 描述 | 臂计算库 | 英特尔MKL-DNN | 通用的C / c++ |
---|---|---|---|---|
additionLayer (深度学习工具箱) |
添加层 |
是的 | 是的 | 是的 |
anchorBoxLayer (计算机视觉工具箱) |
锚箱层 |
是的 | 是的 | 是的 |
averagePooling2dLayer (深度学习工具箱) |
平均池层 |
是的 | 是的 | 是的 |
batchNormalizationLayer (深度学习工具箱) |
批归一化层 |
是的 | 是的 | 是的 |
bilstmLayer (深度学习工具箱) |
双向LSTM层 | 是的 | 是的 | 是的 |
classificationLayer (深度学习工具箱) |
创建分类输出层 |
是的 | 是的 | 是的 |
clippedReluLayer (深度学习工具箱) |
剪切整流线性单元(ReLU)层 |
是的 | 是的 | 是的 |
concatenationLayer (深度学习工具箱) |
连接层 |
是的 | 是的 | 是的 |
convolution2dLayer (深度学习工具箱) |
二维卷积层
|
是的 | 是的 |
是的 |
crop2dLayer (深度学习工具箱) |
将二维裁剪应用到输入的图层 |
是的 | 是的 | 没有 |
CrossChannelNormalizationLayer (深度学习工具箱) |
通道方面的本地响应规范化层 |
是的 | 是的 | 没有 |
自定义图层 |
自定义层,有或没有可学习参数,您为您的问题定义。 看到的:
自定义层的输出必须是固定大小的数组。 序列网络中的自定义层仅支持通用C/ c++代码生成。 对于代码生成,自定义层必须包含 你可以通过
对于不支持的 函数Z = predict(layer, X)如果coder.target (MATLAB的) Z = doppredict (X);其他的如果isdlarray(X) X1 = extractdata(X);Z1 = doPredict (X1);Z = dlarray (Z1);其他的Z = doPredict (X);结束结束结束 |
是的 |
是的 | 是的 序列网络中的自定义层仅支持通用C/ c++代码生成。 |
自定义输出层 |
使用创建的所有输出层,包括自定义分类或回归输出层 有关演示如何定义自定义分类输出层和指定丢失函数的示例,请参见定义自定义分类输出层(深度学习工具箱). 有关显示如何定义自定义回归输出层和指定损失函数的示例,请参见定义自定义回归输出层(深度学习工具箱). |
是的 |
是的 |
是的 |
depthConcatenationLayer (深度学习工具箱) |
深度连接层 |
是的 | 是的 |
是的 |
depthToSpace2dLayer (图像处理工具箱) |
二维深度到空间层 | 是的 | 是的 | 是的 |
dicePixelClassificationLayer (计算机视觉工具箱) |
Dice像素分类层使用广义Dice损失为每个图像像素或体素提供分类标签。 |
是的 | 是的 | 没有 |
dropoutLayer (深度学习工具箱) |
辍学层 |
是的 | 是的 | 是的 |
eluLayer (深度学习工具箱) |
指数线性单位(ELU)层 |
是的 | 是的 | 是的 |
featureInputLayer (深度学习工具箱) |
特性输入层 |
是的 | 是的 | 是的 |
flattenLayer (深度学习工具箱) |
平层 |
是的 | 是的 | 是的 |
focalLossLayer (计算机视觉工具箱) |
焦点损失层使用焦点损失预测对象类。 | 是的 | 是的 | 是的 |
fullyConnectedLayer (深度学习工具箱) |
完全连接层 |
是的 | 是的 | 是的 |
globalAveragePooling2dLayer (深度学习工具箱) |
空间数据的全球平均池化层 |
是的 |
是的 |
是的 |
globalMaxPooling2dLayer (深度学习工具箱) |
二维全局最大池化层 |
是的 | 是的 | 是的 |
|
二维分组卷积层
|
是的
|
是的 |
没有 |
|
集团标准化层 |
是的 |
是的 |
是的 |
|
门控循环单元(GRU)层 |
是的 |
是的 |
是的 |
imageInputLayer (深度学习工具箱) |
图像输入层
|
是的 | 是的 | 是的 |
leakyReluLayer (深度学习工具箱) |
漏校正线性单元(ReLU)层 |
是的 | 是的 | 是的 |
lstmLayer (深度学习工具箱) |
长短时记忆(LSTM)层 |
是的 | 是的 | 是的 |
lstmProjectedLayer (深度学习工具箱) |
LSTM投影层 |
没有 | 没有 | 是的 |
maxPooling2dLayer (深度学习工具箱) |
马克斯池层 如果在内核窗口的非对角线上存在相同的最大值,则 |
是的 | 是的 | 是的 |
maxUnpooling2dLayer (深度学习工具箱) |
马克斯unpooling层 如果在内核窗口的非对角线上存在相同的最大值,则 |
没有 | 是的 | 没有 |
multiplicationLayer (深度学习工具箱) |
乘法层 |
是的 | 是的 | 是的 |
pixelClassificationLayer (计算机视觉工具箱) |
创建用于语义分割的像素分类层 |
是的 | 是的 | 没有 |
rcnnBoxRegressionLayer (计算机视觉工具箱) |
盒子回归层的快速和更快的R-CNN |
是的 | 是的 | 是的 |
rpnClassificationLayer (计算机视觉工具箱) |
区域提议网络(RPNs)的分类层 |
是的 | 是的 | 没有 |
regressionLayer (深度学习工具箱) |
创建一个回归输出层 |
是的 | 是的 | 是的 |
reluLayer (深度学习工具箱) |
整流线性单元(ReLU)层 |
是的 | 是的 | 是的 |
resize2dLayer (图像处理工具箱) |
二维调整层 | 是的 | 是的 | 是的 |
scalingLayer (强化学习工具箱) |
演员或评论家网络的伸缩层 | 是的 | 是的 | 是的 |
sigmoidLayer (深度学习工具箱) |
乙状结肠层 | 是的 | 是的 | 是的 |
sequenceFoldingLayer (深度学习工具箱) |
序列折叠层 | 是的 | 是的 | 没有 |
sequenceInputLayer (深度学习工具箱) |
序列输入层
|
是的 | 是的 | 是的 |
sequenceUnfoldingLayer (深度学习工具箱) |
序列展开层 | 是的 | 是的 | 没有 |
softmaxLayer (深度学习工具箱) |
Softmax层 |
是的 | 是的 |
是的 |
softplusLayer (强化学习工具箱) |
演员或评论家网络的软加层 |
是的 | 是的 | 是的 |
spaceToDepthLayer (图像处理工具箱) |
空间到深度层 |
是的 | 是的 | 没有 |
ssdMergeLayer (计算机视觉工具箱) |
用于对象检测的SSD合并层 |
是的 | 是的 | 是的 |
swishLayer (深度学习工具箱) |
时髦的层 |
是的 | 是的 | 是的 |
|
在上界和下界之间剪辑输入 |
是的 | 是的 | 是的 |
|
将激活扁平化为假设c风格(行为主)顺序的1-D |
是的 |
是的 |
是的 |
nnet.keras.layer.GlobalAveragePooling2dLayer |
空间数据的全球平均池化层 |
是的 |
是的 |
是的 |
|
参数整流线性单元 |
是的 | 是的 | 是的 |
|
乙状结肠活化层 |
是的 |
是的 |
是的 |
|
双曲正切激活层 |
是的 |
是的 |
是的 |
|
将一个输入图像序列压平为一个向量序列,假设输入层的c风格(或行为主)存储顺序 |
是的 | 是的 | 是的 |
|
二维输入的零填充层 |
是的 |
是的 |
是的 |
|
在上界和下界之间剪辑输入 |
是的 | 是的 | 是的 |
nnet.onnx.layer.ElementwiseAffineLayer |
层,该层执行按元素缩放输入,然后进行添加 |
是的 | 是的 | 是的 |
|
以ONNX的方式扁平化MATLAB 2D图像批处理,生成一个2D输出数组 |
是的 | 是的 | 是的 |
|
ONNX™网络压平层 |
是的 |
是的 |
是的 |
|
空间数据的全球平均池化层 |
是的 | 是的 | 是的 |
|
实现ONNX身份运算符的层 |
是的 |
是的 |
是的 |
|
参数整流线性单元 |
是的 | 是的 | 是的 |
|
乙状结肠活化层 |
是的 | 是的 | 是的 |
|
双曲正切激活层 |
是的 | 是的 | 是的 |
|
验证固定批大小 |
是的 | 是的 | 是的 |
|
双曲正切(tanh)层 |
是的 |
是的 |
是的 |
|
转置的二维卷积层 代码生成不支持输入的不对称裁剪。例如,指定一个向量 |
是的 |
是的 |
没有 |
|
单词嵌入层将单词索引映射到向量 |
是的 |
是的 |
没有 |
|
输出层为YOLO v2对象检测网络 |
是的 |
是的 |
没有 |
|
YOLO v2对象检测网络的重组层 |
是的 |
是的 |
没有 |
|
转换层为YOLO v2对象检测网络 |
是的 |
是的 |
没有 |
支持类
类 |
描述 |
臂计算库 |
英特尔MKL-DNN |
通用的C / c++ |
---|---|---|---|---|
DAGNetwork (深度学习工具箱) |
面向深度学习的有向无环图(DAG)网络
|
是的 |
是的 |
是的 |
dlnetwork (深度学习工具箱) |
用于定制训练循环的深度学习网络
|
是的 |
是的 |
是的 |
SeriesNetwork (深度学习工具箱) |
深度学习系列网络
|
是的 |
是的 |
是的 |
|
使用YOLO v2对象检测器检测对象
|
是的 |
是的 |
没有 |
|
使用YOLO v3对象检测器检测对象
|
是的 |
是的 |
是的 |
yolov4ObjectDetector (计算机视觉工具箱) |
使用YOLO v4对象检测器检测对象
|
是的 |
是的 |
是的 |
ssdObjectDetector (计算机视觉工具箱) |
对象,使用基于ssd的检测器检测对象。
|
是的 |
是的 |
是的 |
|
PointPillars网络用于探测激光雷达点云中的物体
|
是的 |
是的 |
没有 |
int8
代码生成
您可以将深度学习工具箱与深度学习工具箱模型量化库支持包结合使用,通过将卷积层的权重、偏差和激活量化为8位缩放整数数据类型,来减少深度神经网络的内存占用。然后,你可以使用MATLAB编码器为网络生成优化的代码。看到为深度学习网络生成int8代码.
另请参阅
相关的话题
- 预训练深度神经网络(深度学习工具箱)
- 了解卷积神经网络(深度学习工具箱)
- 基于MATLAB Coder的深度学习代码生成工作流程