strided_slice
strided_slice算子。
该OP沿多个轴生成 input
的切片,与numpy类似: 。该OP使用 axes
、 starts
和 ends
属性来指定轴列表中每个轴的起点和终点位置,并使用此信息来对 input
切片。如果向 starts
或 ends
传递负值如
,则表示该轴的反向第
参数:
返回:多维 或 LoDTensor
,数据类型与 input
相同。
返回类型:Variable。
抛出异常:
TypeError
:starts
的类型应该是 list、tuple 或 Variable。TypeError
:ends
的类型应该是 list、tuple 或 Variable。
代码示例:
import paddle.fluid as fluid
input = fluid.layers.data(
name="input", shape=[3, 4, 5, 6], dtype='float32', append_batch_size=False)
# example 1:
# attr starts is a list which doesn't contain tensor Variable.
axes = [1, 2, 3]
starts = [-3, 0, 2]
strides_1 = [1, 1, 1]
strides_2 = [1, 1, 2]
sliced_1 = fluid.layers.strided_slice(input, axes=axes, starts=starts, ends=ends, strides=strides_1)
# sliced_1 is input[:, 0:3:1, 0:2:1, 2:4:1].
# example 2:
# attr starts is a list which contain tensor Variable.
minus_3 = fluid.layers.fill_constant([1], "int32", -3)
# sliced_2 is input[:, 0:3:1, 0:2:1, 2:4:2].