文档
注册

非连续的Tensor

目前大部分算子API的输入Tensor支持“非连续的Tensor”,即一个Tensor可以通过(shape, strides, offset)表示。

示例1

例如现有一个shape=(6, 5)、strides=(10, 1)、offset=22的Tensor,其内存排布如下:

a0,0 , a0,1 , a0,2 , a0,3 , a0,4 , a0,5 , a0,6 , a0,7 , a0,8 , a0,9
a1,0 , a1,1 , a1,2 , a1,3 , a1,4 , a1,5 , a1,6 , a1,7 , a1,8 , a1,9
a2,0 , a2,1 , a2,2 , a2,3 , a2,4 , a2,5 , a2,6 , a2,7 , a2,8 , a2,9
a3,0 , a3,1 , a3,2 , a3,3 , a3,4 , a3,5 , a3,6 , a3,7 , a3,8 , a3,9
a4,0 , a4,1 , a4,2 , a4,3 , a4,4 , a4,5 , a4,6 , a4,7 , a4,8 , a4,9
a5,0 , a5,1 , a5,2 , a5,3 , a5,4 , a5,5 , a5,6 , a5,7 , a5,8 , a5,9
a6,0 , a6,1 , a6,2 , a6,3 , a6,4 , a6,5 , a6,6 , a6,7 , a6,8 , a6,9
a7,0 , a7,1 , a7,2 , a7,3 , a7,4 , a7,5 , a7,6 , a7,7 , a7,8 , a7,9
a8,0 , a8,1 , a8,2 , a8,3 , a8,4 , a8,5 , a8,6 , a8,7 , a8,8 , a8,9
a9,0 , a9,1 , a9,2 , a9,3 , a9,4 , a9,5 , a9,6 , a9,7 , a9,8 , a9,9

即该Tensor排布如上图的深色位置。这个完整的Tensor在内存排布上是不连续的,strides描述Tensor维度上相邻两个元素的间隔,如果在维度1上的stride为1, 该维度是连续的;如果在维度0上的stride为10,那么相邻的元素间隔10个元素,即非连续。offset表示这个Tensor的首元素相对addr的偏移。

示例2

例如现有一个shape=(4, 3)、strides=(20, 2)、offset=22的Tensor,其内存排布如下:

a0,0 , a0,1 , a0,2 , a0,3 , a0,4 , a0,5 , a0,6 , a0,7 , a0,8 , a0,9
a1,0 , a1,1 , a1,2 , a1,3 , a1,4 , a1,5 , a1,6 , a1,7 , a1,8 , a1,9
a2,0 , a2,1 , a2,2 , a2,3 , a2,4 , a2,5 , a2,6 , a2,7 , a2,8 , a2,9
a3,0 , a3,1 , a3,2 , a3,3 , a3,4 , a3,5 , a3,6 , a3,7 , a3,8 , a3,9
a4,0 , a4,1 , a4,2 , a4,3 , a4,4 , a4,5 , a4,6 , a4,7 , a4,8 , a4,9
a5,0 , a5,1 , a5,2 , a5,3 , a5,4 , a5,5 , a5,6 , a5,7 , a5,8 , a5,9
a6,0 , a6,1 , a6,2 , a6,3 , a6,4 , a6,5 , a6,6 , a6,7 , a6,8 , a6,9
a7,0 , a7,1 , a7,2 , a7,3 , a7,4 , a7,5 , a7,6 , a7,7 , a7,8 , a7,9
a8,0 , a8,1 , a8,2 , a8,3 , a8,4 , a8,5 , a8,6 , a8,7 , a8,8 , a8,9
a9,0 , a9,1 , a9,2 , a9,3 , a9,4 , a9,5 , a9,6 , a9,7 , a9,8 , a9,9

即该Tensor排布如上图的深色位置。这个完整的Tensor在内存排布上是不连续的,strides描述Tensor维度上相邻两个元素的间隔,如果在维度1上的stride为2, 该维度上间隔1个元素;如果在维度0上的stride为20,那么相邻的元素间隔20个元素,即非连续。offset表示这个Tensor的首元素相对addr的偏移。

搜索结果
找到“0”个结果

当前产品无相关内容

未找到相关内容,请尝试其他搜索词