strided_slice
- paddle. strided_slice ( x: Tensor, axes: Sequence[int | Tensor], starts: Sequence[int | Tensor] | Tensor, ends: Sequence[int | Tensor] | Tensor, strides: Sequence[int | Tensor] | Tensor, name: str | None = None ) Tensor [source]
-
This operator produces a slice of
xalong multiple axes. Similar to numpy:https://numpy.org/doc/stable/user/basics.indexing.html Slice uses
axes,startsandendsattributes to specify the start and end dimension for each axis in the list of axes and Slice uses this information to slice the input data tensor. If a negative value is passed tostartsorendssuch as \(-i\), it represents the reverse position of the axis \(i-1\) th(here 0 is the initial position). Thestridesrepresents steps of slicing and if thestridesis negative, slice operation is in the opposite direction. If the value passed tostartsorendsis greater than n (the number of elements in this dimension), it represents n. For slicing to the end of a dimension with unknown size, it is recommended to pass in INT_MAX. The size ofaxesmust be equal tostarts,endsandstrides. Following examples will explain how strided_slice works:Case1: Given: data = [ [1, 2, 3, 4], [5, 6, 7, 8], ] axes = [0, 1] starts = [1, 0] ends = [2, 3] strides = [1, 1] Then: result = [ [5, 6, 7], ] Case2: Given: data = [ [1, 2, 3, 4], [5, 6, 7, 8], ] axes = [0, 1] starts = [0, 1] ends = [2, 0] strides = [1, -1] Then: result = [ [8, 7, 6], ] Case3: Given: data = [ [1, 2, 3, 4], [5, 6, 7, 8], ] axes = [0, 1] starts = [0, 1] ends = [-1, 1000] strides = [1, 3] Then: result = [ [2], ]- Parameters
-
x (Tensor) – An N-D
Tensor. The data type isbool,float16,float32,float64,int32orint64.axes (list|tuple) – The data type is
int32. Axes that starts and ends apply to. It’s optional. If it is not provides, it will be treated as \([0,1,...,len(starts)-1]\).starts (list|tuple|Tensor) – The data type is
int32. Ifstartsis a list or tuple, the elements of it should be integers or Tensors with shape []. Ifstartsis an Tensor, it should be an 1-D Tensor. It represents starting indices of corresponding axis inaxes.ends (list|tuple|Tensor) – The data type is
int32. Ifendsis a list or tuple, the elements of it should be integers or Tensors with shape []. Ifendsis an Tensor, it should be an 1-D Tensor. It represents ending indices of corresponding axis inaxes.strides (list|tuple|Tensor) – The data type is
int32. Ifstridesis a list or tuple, the elements of it should be integers or Tensors with shape []. Ifstridesis an Tensor, it should be an 1-D Tensor. It represents slice step of corresponding axis inaxes.name (str|None, optional) – The default value is None. Normally there is no need for user to set this property. For more information, please refer to api_guide_Name .
- Returns
-
Tensor, A
Tensorwith the same dimension asx. The data type is same asx.
Examples
>>> import paddle >>> x = paddle.zeros(shape=[3, 4, 5, 6], dtype="float32") >>> # example 1: >>> # attr starts is a list which doesn't contain Tensor. >>> axes = [1, 2, 3] >>> starts = [-3, 0, 2] >>> ends = [3, 2, 4] >>> strides_1 = [1, 1, 1] >>> strides_2 = [1, 1, 2] >>> sliced_1 = paddle.strided_slice(x, axes=axes, starts=starts, ends=ends, strides=strides_1) >>> # sliced_1 is x[:, 1:3:1, 0:2:1, 2:4:1]. >>> # example 2: >>> # attr starts is a list which contain tensor Tensor. >>> minus_3 = paddle.full(shape=[1], fill_value=-3, dtype='int32') >>> sliced_2 = paddle.strided_slice(x, axes=axes, starts=[minus_3, 0, 2], ends=ends, strides=strides_2) >>> # sliced_2 is x[:, 1:3:1, 0:2:1, 2:4:2].
