支持的网络、层和类
支持Pretrained网络
GPU Coder™支持串行和有向无环图(DAG)卷积神经网络(cnn或ConvNets)的代码生成。您可以为任何经过训练的卷积神经网络生成代码,其层支持代码生成。看到支持层.您可以使用深度学习工具箱™在一个CPU、一个GPU或多个GPU上训练卷积神经网络,或者使用表中列出的预先训练的网络之一并生成CUDA®代码。
网络名称 | 描述 | cuDNN | TensorRT | 手臂®马里GPU计算库 |
---|---|---|---|---|
AlexNet |
AlexNet卷积神经网络。关于预训练的AlexNet模型,请参见 的语法 |
是的 |
是的 |
是的 |
咖啡网络 |
来自Caffe的卷积神经网络模型。要从Caffe导入预先训练的网络,请参见 |
是的 |
是的 |
是的 |
Darknet-19 |
19卷积神经网络。有关更多信息,请参见 的语法 |
是的 |
是的 |
是的 |
Darknet-53 |
Darknet-53卷积神经网络。有关更多信息,请参见 的语法 |
是的 |
是的 |
是的 |
DeepLab v3 + |
DeepLab v3+卷积神经网络。有关更多信息,请参见 |
是的 |
是的 |
没有 |
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模型,请参见 的语法 |
是的 |
是的 |
是的 |
Mobilenet-v2 |
MobileNet-v2卷积神经网络有关预先训练的MobileNet-v2模型,请参见 的语法 |
是的 |
是的 |
是的 |
NASNet-Large |
大型卷积神经网络。有关预先训练的NASNet-Large模型,请参见 |
是的 |
是的 |
没有 |
NASNet-Mobile |
移动卷积神经网络。有关预先训练的NASNet-Mobile模型,请参见 |
是的 |
是的 |
没有 |
ResNet |
ResNet-18, ResNet-50和ResNet-101卷积神经网络。有关预先训练的ResNet模型,请参见 的语法 |
是的 |
是的 |
是的 |
SegNet |
多类像素分割网络。有关更多信息,请参见 |
是的 |
是的 |
没有 |
SqueezeNet |
小型深度神经网络。关于预先训练的SqueezeNet模型,请参见 的语法 |
是的 |
是的 |
是的 |
VGG-16 |
VGG-16卷积神经网络。对于预先训练的VGG-16模型,请参见 的语法 |
是的 |
是的 |
是的 |
VGG-19 |
VGG-19卷积神经网络。预先训练的VGG-19模型,见 的语法 |
是的 |
是的 |
是的 |
Xception |
卷积神经网络例外。有关预训练的Xception模型,请参见 的语法 |
是的 |
是的 |
是的 |
YOLO v2意思 |
你只看一次版本2基于卷积神经网络的目标检测器。有关更多信息,请参见 |
是的 |
是的 |
是的 |
支持层
GPU Coder对表中指定的目标深度学习库的代码生成支持以下层。
输入层
层的名字 | 描述 | cuDNN | TensorRT | 用于Mali GPU的ARM计算库 |
---|---|---|---|---|
|
图像输入层向网络输入二维图像,并应用数据归一化。 不支持代码生成 |
是的 |
是的 |
是的 |
|
序列输入层向网络输入序列数据。 cuDNN库支持向量和二维图像序列。TensorRT库只支持向量输入序列。 对于矢量序列输入,在代码生成过程中特征的数量必须是恒定的。 对于图像序列输入,在代码生成期间,高度、宽度和通道数量必须是一个常数。 不支持代码生成 |
是的 |
是的 |
没有 |
|
特征输入层向网络输入特征数据并进行数据规范化。 |
是的 |
是的 |
是的 |
卷积和完全连通层
层的名字 | 描述 | cuDNN | TensorRT | 用于Mali GPU的ARM计算库 |
---|---|---|---|---|
|
二维卷积层对输入应用滑动卷积滤波器。 |
是的 |
是的 |
是的 |
|
全连接层将输入乘以一个权重矩阵,然后添加一个偏置向量。 |
是的 |
是的 |
没有 |
|
二维分组卷积层将输入通道分组,并应用滑动卷积滤波器。使用分组卷积层进行通道可分(也称为深度可分)卷积。 的二维分组卷积层不支持ARM Mali GPU的代码生成 |
是的 |
是的 |
是的 |
|
一个转置的二维卷积层上采样特征映射。 |
是的 |
是的 |
是的 |
序列层
层的名字 | 描述 | cuDNN | TensorRT | 用于Mali GPU的ARM计算库 |
---|---|---|---|---|
|
双向LSTM (BiLSTM)层学习时间序列或序列数据的时间步之间的双向长期依赖关系。当您希望网络在每个时间步中从完整的时间序列中学习时,这些依赖关系可能很有用。 对于代码生成, 对于代码生成, |
是的 |
是的 |
没有 |
|
压平层将输入的空间维度折叠为通道维度。 |
是的 |
没有 |
没有 |
|
GRU层学习时间序列和序列数据中时间步骤之间的依赖关系。 代码生成只支持 |
是的 |
是的 |
没有 |
|
LSTM层学习时间序列和序列数据中时间步之间的长期依赖关系。 对于代码生成, 对于代码生成, |
是的 |
是的 |
没有 |
|
序列折叠层将一批图像序列转换为一批图像。利用序列折叠层对图像序列的时间步分别进行卷积运算。 |
是的 |
没有 |
没有 |
|
序列输入层向网络输入序列数据。 cuDNN库支持向量和二维图像序列。TensorRT库只支持向量输入序列。 对于矢量序列输入,在代码生成过程中特征的数量必须是恒定的。 对于图像序列输入,在代码生成期间,高度、宽度和通道数量必须是一个常数。 不支持代码生成 |
是的 |
是的 |
没有 |
|
序列展开层在序列折叠后恢复输入数据的序列结构。 |
是的 |
没有 |
没有 |
|
单词嵌入层将单词索引映射到向量。 |
是的 |
是的 |
没有 |
激活层
层的名字 | 描述 | cuDNN | TensorRT | 用于Mali GPU的ARM计算库 |
---|---|---|---|---|
|
剪切的ReLU层执行阈值操作,其中小于零的输入值被设置为零,高于的输入值被设置为零剪裁天花板被设置在那个天花板上。 |
是的 |
是的 |
是的 |
|
ELU激活层对正输入执行标识运算,对负输入执行指数非线性。 |
是的 |
是的 |
没有 |
|
泄漏的ReLU层执行阈值操作,其中任何小于零的输入值都乘以一个固定的标量。 |
是的 |
是的 |
是的 |
|
ReLU层对输入的每个元素执行阈值操作,其中任何小于零的值都被设置为零。 |
是的 |
是的 |
是的 |
|
一个 |
是的 |
是的 |
没有 |
|
swish激活层对层输入应用swish函数。 |
是的 |
是的 |
没有 |
|
双曲正切(tanh)激活层在层输入上应用tanh函数。 |
是的 |
是的 |
是的 |
归一化、删除和裁剪图层
层的名字 | 描述 | cuDNN | TensorRT | 用于Mali GPU的ARM计算库 |
---|---|---|---|---|
|
批处理规范化层通过一个小批处理规范化每个输入通道。 |
是的 |
是的 |
是的 |
|
二维作物层将二维裁剪应用于输入。 |
是的 |
是的 |
是的 |
|
通道级本地响应(跨通道)规范化层执行通道级规范化。 |
是的 |
是的 |
是的 |
|
dropout层以给定的概率将输入元素随机设置为零。 |
是的 |
是的 |
是的 |
|
组归一化层针对每个观察独立地跨分组子集通道归一化一个小批数据。 |
是的 |
是的 |
没有 |
|
演员或评论家网络的伸缩层。 的值对于代码生成来说 |
是的 |
是的 |
是的 |
池化和取消池化层
层的名字 | 描述 | cuDNN | TensorRT | 用于Mali GPU的ARM计算库 |
---|---|---|---|---|
|
平均池化层通过将输入划分为矩形池化区域并计算每个区域的平均值来执行下采样。 |
是的 |
是的 |
是的 |
|
全局平均池化层通过计算输入的高度和宽度维度的平均值来执行下采样。 |
是的 |
是的 |
是的 |
|
全局最大池化层通过计算输入的高度和宽度维度的最大值来执行下采样。 |
是的 |
是的 |
是的 |
|
最大池化层通过将输入划分为矩形池化区域,并计算每个区域的最大值来执行下采样。 如果在内核窗口的非对角线上存在相同的最大值,则 |
是的 |
是的 |
是的 |
|
最大反池层将最大反池层的输出反池。 如果在内核窗口的非对角线上存在相同的最大值,则 |
是的 |
是的 |
没有 |
结合层
层的名字 | 描述 | cuDNN | TensorRT | 用于Mali GPU的ARM计算库 |
---|---|---|---|---|
|
添加层按元素添加来自多个神经网络层的输入。 |
是的 |
是的 |
是的 |
|
连接层接受输入并沿着指定的维度连接它们。 |
是的 |
是的 |
没有 |
|
深度连接层接受具有相同高度和宽度的输入,并沿第三维度(通道维度)将它们连接起来。 |
是的 |
是的 |
是的 |
对象检测层
层的名字 | 描述 | cuDNN | TensorRT | 用于Mali GPU的ARM计算库 |
---|---|---|---|---|
|
锚盒层存储用于对象检测网络的特征映射的锚盒。 |
是的 |
是的 |
是的 |
|
二维深度到空间层将深度维度的数据排列到二维空间数据块中。 | 是的 |
是的 |
是的 |
|
焦点损失层使用焦点损失预测对象类。 | 是的 |
是的 |
是的 |
|
空间到深度层将输入的空间块排列到深度维度。当您需要组合不同大小的特征映射而不丢弃任何特征数据时,使用此层。 | 是的 |
是的 |
是的 |
|
SSD合并层将特征映射的输出进行合并,用于后续的回归和分类损失计算。 |
是的 |
是的 |
没有 |
|
盒回归层通过使用平滑L1损失函数细化边界盒位置。使用此层创建Fast或Faster R-CNN对象检测网络。 | 是的 |
是的 |
是的 |
|
区域建议网络(RPN)分类层对图像区域进行分类对象或背景通过使用交叉熵损失函数。使用此层创建一个Faster R-CNN对象检测网络。 | 是的 |
是的 |
是的 |
|
为YOLO v2对象检测网络创建输出层。 |
是的 |
是的 |
是的 |
|
为YOLO v2对象检测网络创建重组层。 |
是的 |
是的 |
是的 |
|
为YOLO v2对象检测网络创建转换层。 |
是的 |
是的 |
是的 |
输出层
层的名字 | 描述 | cuDNN | TensorRT | 用于Mali GPU的ARM计算库 |
---|---|---|---|---|
|
分类层计算具有互斥类的多类分类问题的交叉熵损失。 |
是的 |
是的 |
是的 |
|
Dice像素分类层使用广义Dice损失为每个图像像素或体素提供分类标签。 |
是的 |
是的 |
是的 |
|
焦点损失层使用焦点损失预测对象类。 | 是的 |
是的 |
是的 |
|
使用创建的所有输出层,包括自定义分类或回归输出层 有关演示如何定义自定义分类输出层和指定丢失函数的示例,请参见定义自定义分类输出层(深度学习工具箱). 有关显示如何定义自定义回归输出层和指定损失函数的示例,请参见定义自定义回归输出层(深度学习工具箱). |
是的 |
是的 |
是的 |
|
像素分类层为每个图像像素或体素提供分类标签。 |
是的 |
是的 |
是的 |
|
盒回归层通过使用平滑L1损失函数细化边界盒位置。使用此层创建Fast或Faster R-CNN对象检测网络。 | 是的 |
是的 |
是的 |
|
回归层计算回归问题的半均方误差损失。 |
是的 |
是的 |
是的 |
|
区域建议网络(RPN)分类层对图像区域进行分类对象或背景通过使用交叉熵损失函数。使用此层创建一个Faster R-CNN对象检测网络。 | 是的 |
是的 |
是的 |
|
sigmoid层将sigmoid函数应用于输入。 |
是的 |
是的 |
是的 |
|
softmax层对输入应用softmax函数。 |
是的 |
是的 |
是的 |
自定义Keras层
层的名字 | 描述 | cuDNN | TensorRT | 用于Mali GPU的ARM计算库 |
---|---|---|---|---|
|
在上界和下界之间剪辑输入。 |
是的 |
是的 |
没有 |
|
按C-style(行-主)顺序将激活压平为1-D。 |
是的 |
是的 |
是的 |
|
空间数据的全球平均池化层。 |
是的 |
是的 |
是的 |
|
参数整流线性单元。 |
是的 |
是的 |
没有 |
|
乙状结肠活化层。 |
是的 |
是的 |
是的 |
|
双曲正切激活层。 |
是的 |
是的 |
是的 |
|
将一个输入图像序列压平为一个向量序列,假设输入层的c风格(或行为主)存储顺序。 |
是的 |
是的 |
没有 |
|
二维输入的零填充层。 |
是的 |
是的 |
是的 |
自定义ONNX层
层的名字 | 描述 | cuDNN | TensorRT | 用于Mali GPU的ARM计算库 |
---|---|---|---|---|
|
在上界和下界之间剪辑输入。 |
是的 |
是的 |
没有 |
|
层,该层执行按元素缩放输入,然后进行添加。 |
是的 |
是的 |
是的 |
|
以ONNX的方式扁平化MATLAB 2D图像批处理,生成一个2D输出数组 |
是的 |
是的 |
没有 |
|
将输入张量的空间维度压扁为通道维度。 |
是的 |
是的 |
是的 |
|
空间数据的全球平均池化层。 |
是的 |
是的 |
是的 |
|
实现ONNX身份运算符的层。 |
是的 |
是的 |
是的 |
|
参数整流线性单元。 |
是的 |
是的 |
没有 |
|
乙状结肠活化层。 |
是的 |
是的 |
是的 |
|
双曲正切激活层。 |
是的 |
是的 |
是的 |
|
验证固定的批大小。 |
是的 |
是的 |
是的 |
自定义图层
层的名字 | 描述 | cuDNN | TensorRT | 用于Mali GPU的ARM计算库 |
---|---|---|---|---|
|
自定义层,有或没有可学习参数,您为您的问题定义。 要了解如何定义自定义深度学习层,请参见定义自定义深度学习层(深度学习工具箱)而且为代码生成定义自定义深度学习层(深度学习工具箱). 有关如何为具有自定义层的网络生成代码的示例,请参见基于YOLO v3深度学习的目标检测代码生成. 自定义层的输出必须是固定大小的数组。 使用 cuDNN目标支持自定义层的行主代码和列主代码生成。TensorRT目标只支持列主要代码生成。 对于代码生成,自定义层必须包含 不支持包含自定义层和LSTM或GRU层的序列网络的代码生成。 你可以通过
对于不支持的 函数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 (深度学习工具箱) |
用于定制训练循环的深度学习网络
|
是的 |
是的 |
没有 |
|
PointPillars网络用于探测激光雷达点云中的物体
|
是的 |
是的 |
没有 |
SeriesNetwork (深度学习工具箱) |
深度学习系列网络
|
是的 |
是的 |
是的 |
ssdObjectDetector (计算机视觉工具箱) |
使用基于ssd的检测器检测对象。
|
是的 |
是的 |
没有 |
yolov2ObjectDetector (计算机视觉工具箱) |
使用YOLO v2对象检测器检测对象
|
是的 |
是的 |
是的 |
|
使用YOLO v3对象检测器检测对象
|
是的 |
是的 |
没有 |
|
使用YOLO v4对象检测器检测对象
|
是的 |
是的 |
没有 |
另请参阅
功能
对象
coder.gpuConfig
|编码器。CodeConfig
|编码器。EmbeddedCodeConfig
|coder.gpuEnvConfig
|编码器。CuDNNConfig
|编码器。TensorRTConfig
相关的话题
- 预训练深度神经网络(深度学习工具箱)
- 开始迁移学习(深度学习工具箱)
- 创建简单的深度学习网络分类(深度学习工具箱)
- 为代码生成加载预先训练的网络
- 基于cuDNN的深度学习网络代码生成
- 基于TensorRT的深度学习网络代码生成
- 面向ARM Mali gpu的深度学习网络代码生成