主要内容

支持的网络、层和类

支持Pretrained网络

GPU Coder™支持串行和有向无环图(DAG)卷积神经网络(cnn或ConvNets)的代码生成。您可以为任何经过训练的卷积神经网络生成代码,其层支持代码生成。看到支持层.您可以使用深度学习工具箱™在一个CPU、一个GPU或多个GPU上训练卷积神经网络,或者使用表中列出的预先训练的网络之一并生成CUDA®代码。

网络名称 描述 cuDNN TensorRT 手臂®马里GPU计算库

AlexNet

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

的语法alexnet(“重量”、“没有”)不支持代码生成。

是的

是的

是的

咖啡网络

来自Caffe的卷积神经网络模型。要从Caffe导入预先训练的网络,请参见importCaffeNetwork(深度学习工具箱)

是的

是的

是的

Darknet-19

19卷积神经网络。有关更多信息,请参见darknet19(深度学习工具箱)

的语法darknet19(“重量”、“没有”)不支持代码生成。

是的

是的

是的

Darknet-53

Darknet-53卷积神经网络。有关更多信息,请参见darknet53(深度学习工具箱)

的语法darknet53(“重量”、“没有”)不支持代码生成。

是的

是的

是的

DeepLab v3 +

DeepLab v3+卷积神经网络。有关更多信息,请参见deeplabv3plusLayers(计算机视觉工具箱)

是的

是的

没有

densenet - 201

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

的语法densenet201(“重量”、“没有”)不支持代码生成。

是的

是的

是的

EfficientNet-b0

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

的语法efficientnetb0(“重量”、“没有”)不支持代码生成。

是的 是的 是的

GoogLeNet

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

的语法googlenet(“重量”、“没有”)不支持代码生成。

是的

是的

是的

Inception-ResNet-v2

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

是的

是的

没有

Inception-v3

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

的语法inceptionv3(“重量”、“没有”)不支持代码生成。

是的

是的

是的

Mobilenet-v2

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

的语法mobilenetv2(“重量”、“没有”)不支持代码生成。

是的

是的

是的

NASNet-Large

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

是的

是的

没有

NASNet-Mobile

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

是的

是的

没有

ResNet

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

的语法resnetXX(“重量”、“没有”)不支持代码生成。

是的

是的

是的

SegNet

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

是的

是的

没有

SqueezeNet

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

的语法squeezenet(“重量”、“没有”)不支持代码生成。

是的

是的

是的

VGG-16

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

的语法vgg16(“重量”、“没有”)不支持代码生成。

是的

是的

是的

VGG-19

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

的语法vgg19(“重量”、“没有”)不支持代码生成。

是的

是的

是的

Xception

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

的语法xception(“重量”、“没有”)不支持代码生成。

是的

是的

是的

YOLO v2意思

你只看一次版本2基于卷积神经网络的目标检测器。有关更多信息,请参见yolov2Layers(计算机视觉工具箱)

是的

是的

是的

支持层

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

输入层

层的名字 描述 cuDNN TensorRT 用于Mali GPU的ARM计算库

imageInputLayer(深度学习工具箱)

图像输入层向网络输入二维图像,并应用数据归一化。

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

是的

是的

是的

sequenceInputLayer(深度学习工具箱)

序列输入层向网络输入序列数据。

cuDNN库支持向量和二维图像序列。TensorRT库只支持向量输入序列。

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

对于图像序列输入,在代码生成期间,高度、宽度和通道数量必须是一个常数。

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

是的

是的

没有

featureInputLayer(深度学习工具箱)

特征输入层向网络输入特征数据并进行数据规范化。

是的

是的

是的

卷积和完全连通层

层的名字 描述 cuDNN TensorRT 用于Mali GPU的ARM计算库

convolution2dLayer(深度学习工具箱)

二维卷积层对输入应用滑动卷积滤波器。

是的

是的

是的

fullyConnectedLayer(深度学习工具箱)

全连接层将输入乘以一个权重矩阵,然后添加一个偏置向量。

是的

是的

没有

groupedConvolution2dLayer(深度学习工具箱)

二维分组卷积层将输入通道分组,并应用滑动卷积滤波器。使用分组卷积层进行通道可分(也称为深度可分)卷积。

的二维分组卷积层不支持ARM Mali GPU的代码生成NumGroups属性设置为“channel-wise”或者一个大于2的值。

是的

是的

是的

transposedConv2dLayer(深度学习工具箱)

一个转置的二维卷积层上采样特征映射。

是的

是的

是的

序列层

层的名字 描述 cuDNN TensorRT 用于Mali GPU的ARM计算库

bilstmLayer(深度学习工具箱)

双向LSTM (BiLSTM)层学习时间序列或序列数据的时间步之间的双向长期依赖关系。当您希望网络在每个时间步中从完整的时间序列中学习时,这些依赖关系可能很有用。

对于代码生成,StateActivationFunction属性必须设置为的双曲正切

对于代码生成,GateActivationFunction属性必须设置为“乙状结肠”

是的

是的

没有

flattenLayer(深度学习工具箱)

压平层将输入的空间维度折叠为通道维度。

是的

没有

没有

gruLayer(深度学习工具箱)

GRU层学习时间序列和序列数据中时间步骤之间的依赖关系。

代码生成只支持“after-multiplication”而且“recurrent-bias-after-multiplication”重置门模式。

是的

是的

没有

lstmLayer(深度学习工具箱)

LSTM层学习时间序列和序列数据中时间步之间的长期依赖关系。

对于代码生成,StateActivationFunction属性必须设置为的双曲正切

对于代码生成,GateActivationFunction属性必须设置为“乙状结肠”

是的

是的

没有

sequenceFoldingLayer(深度学习工具箱)

序列折叠层将一批图像序列转换为一批图像。利用序列折叠层对图像序列的时间步分别进行卷积运算。

是的

没有

没有

sequenceInputLayer(深度学习工具箱)

序列输入层向网络输入序列数据。

cuDNN库支持向量和二维图像序列。TensorRT库只支持向量输入序列。

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

对于图像序列输入,在代码生成期间,高度、宽度和通道数量必须是一个常数。

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

是的

是的

没有

sequenceUnfoldingLayer(深度学习工具箱)

序列展开层在序列折叠后恢复输入数据的序列结构。

是的

没有

没有

wordEmbeddingLayer(文本分析工具箱)

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

是的

是的

没有

激活层

层的名字 描述 cuDNN TensorRT 用于Mali GPU的ARM计算库

clippedReluLayer(深度学习工具箱)

剪切的ReLU层执行阈值操作,其中小于零的输入值被设置为零,高于的输入值被设置为零剪裁天花板被设置在那个天花板上。

是的

是的

是的

eluLayer(深度学习工具箱)

ELU激活层对正输入执行标识运算,对负输入执行指数非线性。

是的

是的

没有

leakyReluLayer(深度学习工具箱)

泄漏的ReLU层执行阈值操作,其中任何小于零的输入值都乘以一个固定的标量。

是的

是的

是的

reluLayer(深度学习工具箱)

ReLU层对输入的每个元素执行阈值操作,其中任何小于零的值都被设置为零。

是的

是的

是的

softplusLayer(强化学习工具箱)

一个SoftplusLayer是实现软加激活的深度神经网络层吗Y= log(1 + eX,这保证了输出总是正的。

是的

是的

没有

swishLayer(深度学习工具箱)

swish激活层对层输入应用swish函数。

是的

是的

没有

tanhLayer(深度学习工具箱)

双曲正切(tanh)激活层在层输入上应用tanh函数。

是的

是的

是的

归一化、删除和裁剪图层

层的名字 描述 cuDNN TensorRT 用于Mali GPU的ARM计算库

batchNormalizationLayer(深度学习工具箱)

批处理规范化层通过一个小批处理规范化每个输入通道。

是的

是的

是的

crop2dLayer(深度学习工具箱)

二维作物层将二维裁剪应用于输入。

是的

是的

是的

crossChannelNormalizationLayer(深度学习工具箱)

通道级本地响应(跨通道)规范化层执行通道级规范化。

是的

是的

是的

dropoutLayer(深度学习工具箱)

dropout层以给定的概率将输入元素随机设置为零。

是的

是的

是的

groupNormalizationLayer(深度学习工具箱)

组归一化层针对每个观察独立地跨分组子集通道归一化一个小批数据。

是的

是的

没有

scalingLayer(强化学习工具箱)

演员或评论家网络的伸缩层。

的值对于代码生成来说“规模”而且“偏见”属性必须具有相同的维度。

是的

是的

是的

池化和取消池化层

层的名字 描述 cuDNN TensorRT 用于Mali GPU的ARM计算库

averagePooling2dLayer(深度学习工具箱)

平均池化层通过将输入划分为矩形池化区域并计算每个区域的平均值来执行下采样。

是的

是的

是的

globalAveragePooling2dLayer(深度学习工具箱)

全局平均池化层通过计算输入的高度和宽度维度的平均值来执行下采样。

是的

是的

是的

globalMaxPooling2dLayer(深度学习工具箱)

全局最大池化层通过计算输入的高度和宽度维度的最大值来执行下采样。

是的

是的

是的

maxPooling2dLayer(深度学习工具箱)

最大池化层通过将输入划分为矩形池化区域,并计算每个区域的最大值来执行下采样。

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

是的

是的

是的

maxUnpooling2dLayer(深度学习工具箱)

最大反池层将最大反池层的输出反池。

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

是的

是的

没有

结合层

层的名字 描述 cuDNN TensorRT 用于Mali GPU的ARM计算库

additionLayer(深度学习工具箱)

添加层按元素添加来自多个神经网络层的输入。

是的

是的

是的

concatenationLayer(深度学习工具箱)

连接层接受输入并沿着指定的维度连接它们。

是的

是的

没有

depthConcatenationLayer(深度学习工具箱)

深度连接层接受具有相同高度和宽度的输入,并沿第三维度(通道维度)将它们连接起来。

是的

是的

是的

对象检测层

层的名字 描述 cuDNN TensorRT 用于Mali GPU的ARM计算库

anchorBoxLayer(计算机视觉工具箱)

锚盒层存储用于对象检测网络的特征映射的锚盒。

是的

是的

是的

depthToSpace2dLayer(图像处理工具箱)

二维深度到空间层将深度维度的数据排列到二维空间数据块中。

是的

是的

是的

focalLossLayer(计算机视觉工具箱)

焦点损失层使用焦点损失预测对象类。

是的

是的

是的

spaceToDepthLayer(图像处理工具箱)

空间到深度层将输入的空间块排列到深度维度。当您需要组合不同大小的特征映射而不丢弃任何特征数据时,使用此层。

是的

是的

是的

ssdMergeLayer(计算机视觉工具箱)

SSD合并层将特征映射的输出进行合并,用于后续的回归和分类损失计算。

是的

是的

没有

rcnnBoxRegressionLayer(计算机视觉工具箱)

盒回归层通过使用平滑L1损失函数细化边界盒位置。使用此层创建Fast或Faster R-CNN对象检测网络。

是的

是的

是的

rpnClassificationLayer(计算机视觉工具箱)

区域建议网络(RPN)分类层对图像区域进行分类对象背景通过使用交叉熵损失函数。使用此层创建一个Faster R-CNN对象检测网络。

是的

是的

是的

YOLOv2OutputLayer(计算机视觉工具箱)

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

是的

是的

是的

YOLOv2ReorgLayer(计算机视觉工具箱)

为YOLO v2对象检测网络创建重组层。

是的

是的

是的

YOLOv2TransformLayer(计算机视觉工具箱)

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

是的

是的

是的

输出层

层的名字 描述 cuDNN TensorRT 用于Mali GPU的ARM计算库

classificationLayer(深度学习工具箱)

分类层计算具有互斥类的多类分类问题的交叉熵损失。

是的

是的

是的

dicePixelClassificationLayer(计算机视觉工具箱)

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

是的

是的

是的

focalLossLayer(计算机视觉工具箱)

焦点损失层使用焦点损失预测对象类。

是的

是的

是的

输出层(深度学习工具箱)

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

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

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

是的

是的

是的

pixelClassificationLayer(计算机视觉工具箱)

像素分类层为每个图像像素或体素提供分类标签。

是的

是的

是的

rcnnBoxRegressionLayer(计算机视觉工具箱)

盒回归层通过使用平滑L1损失函数细化边界盒位置。使用此层创建Fast或Faster R-CNN对象检测网络。

是的

是的

是的

regressionLayer(深度学习工具箱)

回归层计算回归问题的半均方误差损失。

是的

是的

是的

rpnClassificationLayer(计算机视觉工具箱)

区域建议网络(RPN)分类层对图像区域进行分类对象背景通过使用交叉熵损失函数。使用此层创建一个Faster R-CNN对象检测网络。

是的

是的

是的

sigmoidLayer(深度学习工具箱)

sigmoid层将sigmoid函数应用于输入。

是的

是的

是的

softmaxLayer(深度学习工具箱)

softmax层对输入应用softmax函数。

是的

是的

是的

自定义Keras层

层的名字 描述 cuDNN TensorRT 用于Mali GPU的ARM计算库

nnet.keras.layer.ClipLayer(深度学习工具箱)

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

是的

是的

没有

nnet.keras.layer.FlattenCStyleLayer(深度学习工具箱)

按C-style(行-主)顺序将激活压平为1-D。

是的

是的

是的

nnet.keras.layer.GlobalAveragePooling2dLayer(深度学习工具箱)

空间数据的全球平均池化层。

是的

是的

是的

nnet.keras.layer.PreluLayer(深度学习工具箱)

参数整流线性单元。

是的

是的

没有

nnet.keras.layer.SigmoidLayer(深度学习工具箱)

乙状结肠活化层。

是的

是的

是的

nnet.keras.layer.TanhLayer(深度学习工具箱)

双曲正切激活层。

是的

是的

是的

nnet.keras.layer.TimeDistributedFlattenCStyleLayer(深度学习工具箱)

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

是的

是的

没有

nnet.keras.layer.ZeroPadding2dLayer(深度学习工具箱)

二维输入的零填充层。

是的

是的

是的

自定义ONNX层

层的名字 描述 cuDNN TensorRT 用于Mali GPU的ARM计算库

nnet.onnx.layer.ClipLayer(深度学习工具箱)

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

是的

是的

没有

nnet.onnx.layer.ElementwiseAffineLayer(深度学习工具箱)

层,该层执行按元素缩放输入,然后进行添加。

是的

是的

是的

nnet.onnx.layer.FlattenInto2dLayer(深度学习工具箱)

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

是的

是的

没有

nnet.onnx.layer.FlattenLayer(深度学习工具箱)

将输入张量的空间维度压扁为通道维度。

是的

是的

是的

nnet.onnx.layer.GlobalAveragePooling2dLayer(深度学习工具箱)

空间数据的全球平均池化层。

是的

是的

是的

nnet.onnx.layer.IdentityLayer(深度学习工具箱)

实现ONNX身份运算符的层。

是的

是的

是的

nnet.onnx.layer.PreluLayer(深度学习工具箱)

参数整流线性单元。

是的

是的

没有

nnet.onnx.layer.SigmoidLayer(深度学习工具箱)

乙状结肠活化层。

是的

是的

是的

nnet.onnx.layer.TanhLayer(深度学习工具箱)

双曲正切激活层。

是的

是的

是的

nnet.onnx.layer.VerifyBatchSizeLayer(深度学习工具箱)

验证固定的批大小。

是的

是的

是的

自定义图层

层的名字 描述 cuDNN TensorRT 用于Mali GPU的ARM计算库

自定义图层

自定义层,有或没有可学习参数,您为您的问题定义。

要了解如何定义自定义深度学习层,请参见定义自定义深度学习层(深度学习工具箱)而且为代码生成定义自定义深度学习层(深度学习工具箱)

有关如何为具有自定义层的网络生成代码的示例,请参见基于YOLO v3深度学习的目标检测代码生成

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

使用“统一”随着MallocModecoder.gpuConfig需要额外的内存副本,导致性能变慢。对于自定义层,建议使用“离散”模式。有关GPU内存分配的更多信息,请参见离散和管理模式

cuDNN目标支持自定义层的行主代码和列主代码生成。TensorRT目标只支持列主要代码生成。

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

不支持包含自定义层和LSTM或GRU层的序列网络的代码生成。

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

  • 自定义层进来了dlnetwork

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

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

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

是的

是的

没有

支持类

GPU Coder支持以下类为表中指定的目标深度学习库生成代码。

的名字 描述 cuDNN TensorRT 用于Mali GPU的ARM计算库
DAGNetwork(深度学习工具箱)

面向深度学习的有向无环图(DAG)网络

  • 只有激活预测,分类支持方法。

是的

是的

是的

dlnetwork(深度学习工具箱)

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

  • 代码生成只支持InputNames而且OutputNames属性。

  • 初始化财产的dlnetwork对象必须设置为true。

  • 的代码dlnetwork有矢量和图像序列输入。代码生成支持包括:

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

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

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

  • 代码生成只支持预测对象的功能。的dlarray的输入预测方法必须是数据类型。

  • 代码生成支持dlnetwork对于cuDNN和TensorRT目标。不支持代码生成dlnetwork针对ARM马里的目标。

  • 当瞄准TensorRT时INT8精度,网络的最后一层必须是一个softmaxLayer层。

  • 代码生成支持MIMOdlnetworks

  • 创建一个dlnetwork对象用于代码生成,请参见为代码生成加载预先训练的网络

是的

是的

没有

pointPillarsObjectDetector(激光雷达工具箱)

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

  • 只有检测(激光雷达工具箱)的方法pointPillarsObjectDetector支持代码生成。

  • 只有阈值SelectStrongest,MiniBatchSize的名称-值对检测支持方法。

是的

是的

没有

SeriesNetwork(深度学习工具箱)

深度学习系列网络

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

是的

是的

是的

ssdObjectDetector(计算机视觉工具箱)

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

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

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

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

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

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

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

  • 边界框可能在数值上与模拟结果不匹配。

是的

是的

没有

yolov2ObjectDetector(计算机视觉工具箱)

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

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

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

  • 只有阈值SelectStrongestMinSize最大尺寸,MiniBatchSize支持名称-值对。

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

  • 传递给检测方法的最小批大小值必须是固定大小。

是的

是的

是的

yolov3ObjectDetector(计算机视觉工具箱)

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

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

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

  • 只有阈值SelectStrongestMinSize最大尺寸,MiniBatchSize支持名称-值对。

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

  • 传递给检测方法的最小批大小值必须是固定大小。

是的

是的

没有

yolov4ObjectDetector(计算机视觉工具箱)

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

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

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

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

是的

是的

没有

另请参阅

功能

对象

相关的话题

Baidu
map