SliceOperation

功能

从输入张量某个起始位置中提取指定大小的切片。

算子上下文

图1 SliceOperation算子上下文

定义

struct SliceParam {
    SVector<int64_t> offsets;
    SVector<int64_t> size;
};

参数列表

成员名称

类型

默认值

描述

offsets

SVector<int64_t>

-

每个维度切片的起始位置。

  • 当offsets[i]小于0时(-dimNum<=i<dimNum),例如offsets[i]= -1,输入x的第i维的维度大小为dimNum,则输入x的第i维切片的起始位置为dimNum - 1(即起始位置为最后一维)。
  • 当offsets[i]小于0时,且第i维的维度大小为dimNum,要求dimNum与x之和大于等于0。

size

SVector<int64_t>

-

每个维度切片的大小。

  • 当size[i] = -1时,表示切片的结束位置是第i维的最后一个位置。如果第i维的维度大小为dimNum,则结束位置为dimNum - 1。
  • size中元素要求大于等于-1。且offsets[i] + size[i]须在x的第i维维度的大小范围内。

输入

参数

维度

数据类型

格式

描述

x

[dim_0,dim_1,...,dim_n]

float16/float/int8/bool/int32/uint32/bf16

ND

输入tensor。

输出

参数

维度

数据类型

格式

描述

output

[dim_0,dim_1,...,dim_n]

float16/float/int8/bool/int32/uint32/bf16

与x的数据类型相同

ND

输出tensor,维度的大小为size指定的大小。

规格约束

调用接口示例