昇腾社区首页
中文
注册
开发者
下载

非连续的Tensor

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

示例1

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

[object Object]

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

示例2

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

[object Object]

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