NVIDIA TensorRT 及其应用: (NVIDIA TensorRT Introduction and Application)简述
1、TensorRT 简介:(NVIDIA TensorRT Introduction)
--NVIDIA TensorRTTM是一个 C ++库,可以帮助 NVIDIA 图形处理器(GPU)进行高性 能推理。 TensorRT 通过合并张量和图层,转换权重,选择高效的中间数据格式, 并根据图层参数和测量的性能从大型内核目录中进行选择,从而对网络进行定义并 对其进行优化。
--TensorRT 包含导入方法,可帮助您为 TensorRT 表达训练有素的深度学习模型以 优化和运行。 它是一种优化工具,可以应用图形优化和图层融合,并利用各种高 度优化的内核集合找到该模型的最快实现,以及可用于在推理上下文中执行此网络 的运行时方法。
2、TensorRT 支持的网络层:(Network Layers that TensorRT Supports)
--Activation(激活层):
激活层是每个元素的激活方法,它目前支持一下几种类型的激活层:ReLU,tanh,sigmod。
--Concatenation(连接层):
连接层链接通过通道维度链接多个相同高度和宽度的张量
--Convolution (卷基层):
卷基层是一个三维的卷积操作,有时会加入 bias(偏置量)
--Deconvolution (反卷基层):
反卷基层是一个反卷积操作,有时会加入 bias(偏置量)
--ElementWise (元素操作层):
ElementWise 层是一些常用的元素操作。目前支持的有: sum, product, maximum,subtraction, division 和 power.
--Flatten(扁平化层):
Flatten 层的作用是使输入的张量在大小不变的情况下,变得扁平化。举个例子:一个输入张量形状为:n*c*w*h(4 维);输出为一个大小为 n*(c*w*h)(一维)的向量
--FullyConnected (全连接层) :
FullyConnected 实现的是一个矩阵向量的乘积,有时会加入 bias(偏置量)
--LRN (归一化层):
LRN 层实现了一个跨通道的局部响应归一化
--Padding(填充层):
Padding 层实现了在空间上的张量的零填充。填充可以是在每个轴上不对称的,正的(使
张量膨胀),负的(使张量剪裁)
--Plugin(自定义网络层):
Plugin 层允许您自定义网络层的实现,而这些网络层可能是 TensorRT 不支持的。
--Pooling (池化层)
Pooling 层在一个通道上实现了池化操作。支持的池化类型有最大和平均。
--RNN (递归神经网络层)
RNN 层实现了递归网络层。它包括:RNN,GRU(Gated Recurrent Units),LSTM
(Long Short-term memory)
--Scale
Scale 层实现了每一个张量,每一个通道或者每一个权重的仿射变换和常数求幂
--Shuffle
Shuffle 层实现了张量的调整。它可以用于改变数据的形状或者顺序
--SoftMax
SoftMax 层实现了跨通道的 SoftMax 操作
--Squeeze(挤压层):
Squeeze 层从张量形状中移除尺寸为 1 的维度。 Squeeze 层仅实现二元挤压(去除特定
尺寸 1 维)。 批量维度无法删除。
--Unary(一元操作层):
Unary 层支持点态一元操作。支持的操作有 exp、log、sqrt、replp、abs、neg。
问题来源