slice¶
- paddle.sparse.slice(x, axis, starts, ends, name=None):
沿多个轴生成 x
的切片。使用 axes
、 starts
和 ends
属性来指定轴列表中每个轴的起点和终点位置,并使用此信息来对 x
切片。 如果向 starts
或 ends
传递负值如 \(-i\),则表示该轴的反向第 \(i-1\) 个位置(这里以 0 为初始位置)。 如果传递给 starts
或 end
的值大于 n (维度中的元素数目),则表示 n。 当切片一个未知数量的维度时,建议传入 INT_MAX
。 axes
、 starts
和 ends
三个参数的元素数目必须相等。
以下示例将解释切片如何工作 (此处只介绍 Slice 的概念, 故不区分稀疏和稠密 Tensor):
示例 1:
给定:
data=[[1,2,3,4],[5,6,7,8],]
axes=[0,1]
starts=[1,0]
ends=[2,3]
则:
result=[[5,6,7],]
示例 2:
给定:
data=[[1,2,3,4],[5,6,7,8],]
starts=[0,1]
ends=[-1,1000] # 此处-1 表示第 0 维的反向第 0 个位置,索引值是 1。
则:
result=[[2,3,4],] # 即 data[0:1, 1:4]
参数¶
x (Tensor) - 输入的多维
Tensor
,数据类型为 bool、float16、float32、float64、int32 或 int64。axis (list|tuple|Tensor) - 数据类型是
int32
。如果axes
的类型是 list 或 tuple, 它的元素可以是整数或者形状为[1]的Tensor
。如果axes
的类型是Tensor
,则是 1-DTensor
。表示进行切片的轴。starts (list|tuple|Tensor) - 数据类型是
int32
。如果starts
的类型是 list 或 tuple, 它的元素可以是整数或者形状为[1]的Tensor
。如果starts
的类型是Tensor
,则是 1-DTensor
。表示在各个轴上切片的起始索引值。ends (list|tuple|Tensor) - 数据类型是
int32
。如果ends
的类型是 list 或 tuple, 它的元素可以是整数或者形状为[1]的Tensor
。如果ends
的类型是Tensor
,则是 1-DTensor
。表示在各个轴上切片的结束索引值。
返回¶
多维 Tensor
,数据类型与 x
相同。
代码示例¶
COPY-FROM: paddle.sparse.slice