天天看点

CUDNN学习笔记(2)

Tensor描述符:

该cuDNN库描述了数据保存图像,视频和任何其他数据的内容与通用n-D张量定义与以下参数:

一个尺寸dim为3到8

数据类型(32位浮点,64位浮点,16位浮点...)

dim整数类型定义每个维度的大小

dim整数类型定义每个维度的步幅(例如,为了从同一维度到达下一个元素而添加的元素的数量)

前两个维度分别定义批量(batch)大小n和特征图c的数量。 该张量定义允许例如通过使一维的步幅小于下一维的尺寸和步幅的乘积而在相同张量内具有彼此重叠的一些尺寸。 在cuDNN中,除非另有规定,否则所有程序都将支持具有重叠尺寸的张量,以用于正向输入张量,但是输出张量的尺寸不能重叠。 尽管这种张量格式支持负跨度(对于数据镜像可能有用),但除非另有说明,否则cuDNN例程不支持负跨度的张量。

WXYZ张量描述符:

张量描述符格式使用首字母缩略词来标识,每个字母都引用相应的维度。

所有的进步都是严格肯定的

字母所引用的尺寸按其各自步幅的降序排列

4-D张量描述符:

使用4维张量描述符来定义4个字母的批量2D图像的格式:N,C,H,W分别表示批量大小,特征图的数量,高度和宽度。 这些字母按照步幅的降序排列。 常用的四维张量格式是:

NCHW

NHWC

CHWN

5-D张量描述符:

5-D Tensor描述符用于定义批量3D图像的格式,包含5个字母:N,C,D,H,W分别表示批量大小,特征图的数量,深度,高度和宽度。 这些字母按步伐的递减顺序排序。 常用的5维张量格式称为:

NCDHW

NDHWC

CDHWN

Fully-packed 张量:

张量被定义为XYZ-fully-packed当且仅当:

张量维数等于完整填充后缀之前的字母数。

第i维的步幅等于(i + 1)维乘以第(i + 1)步的乘积。

最后一个维度的步幅是1。

Partially-packed 张量:

部分“XYZ压缩”术语仅适用于用用于定义部分压缩张量的字母超集描述的张量格式的上下文。 WXYZ张量定义为XYZ-packed当且仅当:

在-packed后缀中未引用的所有维度的跨度大于或等于下一个跨度的下一个维度的乘积。

在位置i的-packed后缀中引用的每个维度的步幅等于(i + 1)-st维度乘以(i + 1)-st步幅的乘积。

如果最后张量的维数存在于-packed后缀中,则步幅为1

例如,NHWC张量WC包装意味着c_stride等于1,w_stride等于c_dim x c_stride。 实际上,-packed后缀通常具有张量变化最小的尺寸,但是也可以参考仅N-packed的NCHW张量。

空间填充张量:

空间填充张量定义为空间维度中的部分填充。

例如,空间压缩的4D张量将意味着张量是NCHW HW-packed或CNHW HW-packed。

重叠张量:

如果遍历整个维度范围多次产生相同的地址,则张量定义为重叠。

在实践中,重叠张量对于来自[1,nbDims]区间的一些i,将具有步幅[i-1]

CUDNN学习笔记(2)