narrow

paddle. narrow ( input: Tensor, dim: int, start: int | Tensor, length: int ) Tensor [source]

Returns a narrowed slice of input along a single axis.

This operator selects the index range [start, start + length) on dimension dim and keeps all the dimensions unchanged.

Parameters
  • input (Tensor) – Input tensor.

  • dim (int) – Dimension to narrow. Supports negative indexing.

  • start (int|Tensor) – Start index on dim. Can be a Python int or a 0-D int Tensor (int32 or int64). Negative values are supported.

  • length (int) – Number of elements to select from start. Must be non-negative.

Returns

A tensor that is a narrowed view of input.

Return type

Tensor

Examples

>>> import paddle

>>> x = paddle.to_tensor([[1, 2, 3, 4],
...                       [5, 6, 7, 8]], dtype='int64')

>>> y1 = paddle.narrow(x, dim=1, start=1, length=2)
>>> print(y1)
Tensor(shape=[2, 2], dtype=int64, place=Place(cpu), stop_gradient=True,
[[2, 3],
 [6, 7]])

>>> y2 = paddle.narrow(x, dim=-1, start=-3, length=3)
>>> print(y2)
Tensor(shape=[2, 3], dtype=int64, place=Place(cpu), stop_gradient=True,
[[2, 3, 4],
 [6, 7, 8]])

>>> s = paddle.to_tensor(0, dtype='int64')
>>> y3 = paddle.narrow(x, dim=1, start=s, length=2)
>>> print(y3)
Tensor(shape=[2, 2], dtype=int64, place=Place(cpu), stop_gradient=True,
[[1, 2],
 [5, 6]])