未验证 提交 c8fb6fc4 编写于 作者: T Thomas Young 提交者: GitHub

fix crop_tensor op doc (#34263)

* fix crop_tensor op doc

* update code example test=document_fix
上级 52e2c83e
...@@ -9058,16 +9058,16 @@ def crop_tensor(x, shape=None, offsets=None, name=None): ...@@ -9058,16 +9058,16 @@ def crop_tensor(x, shape=None, offsets=None, name=None):
[6, 7, 8]]] [6, 7, 8]]]
Parameters: Parameters:
x (Variable): 1-D to 6-D Tensor, the data type is float32, float64, int32 or int64. x (Tensor): 1-D to 6-D Tensor, the data type is float32, float64, int32 or int64.
shape (list|tuple|Variable): The output shape is specified shape (list|tuple|Tensor): The output shape is specified
by `shape`. Its data type is int32. If a list/tuple, it's length must be by `shape`. Its data type is int32. If a list/tuple, it's length must be
the same as the dimension size of `x`. If a Variable, it should be a 1-D Tensor. the same as the dimension size of `x`. If a Tensor, it should be a 1-D Tensor.
When it is a list, each element can be an integer or a Tensor of shape: [1]. When it is a list, each element can be an integer or a Tensor of shape: [1].
If Variable contained, it is suitable for the case that the shape may If Variable contained, it is suitable for the case that the shape may
be changed each iteration. be changed each iteration.
offsets (list|tuple|Variable, optional): Specifies the cropping offsets (list|tuple|Variable, optional): Specifies the cropping
offsets at each dimension. Its data type is int32. If a list/tuple, it's length offsets at each dimension. Its data type is int32. If a list/tuple, it's length
must be the same as the dimension size of `x`. If a Variable, it should be a 1-D must be the same as the dimension size of `x`. If a Tensor, it should be a 1-D
Tensor. When it is a list, each element can be an integer or a Tensor of shape: [1]. Tensor. When it is a list, each element can be an integer or a Tensor of shape: [1].
If Variable contained, it is suitable for the case that the offsets may be changed If Variable contained, it is suitable for the case that the offsets may be changed
each iteration. Default: None, the offsets are 0 at each dimension. each iteration. Default: None, the offsets are 0 at each dimension.
...@@ -9075,51 +9075,36 @@ def crop_tensor(x, shape=None, offsets=None, name=None): ...@@ -9075,51 +9075,36 @@ def crop_tensor(x, shape=None, offsets=None, name=None):
this property. For more information, please refer to :ref:`api_guide_Name` . this property. For more information, please refer to :ref:`api_guide_Name` .
Returns: Returns:
Variable: The cropped Tensor has same data type with `x`. Tensor: The cropped Tensor has same data type with `x`.
Raises:
TypeError: If the data type of `x` is not in: float32, float64, int32, int64.
TypeError: If `shape` is not a list, tuple or Variable.
TypeError: If the data type of `shape` is not int32.
TypeError: If `offsets` is not None and not a list, tuple or Variable.
TypeError: If the data type of `offsets` is not int32.
ValueError: If the element in `offsets` is less than zero.
Examples: Examples:
.. code-block:: python .. code-block:: python
:name: code-example1
import paddle.fluid as fluid
import paddle.fluid as fluid
import paddle import paddle
paddle.enable_static() x = paddle.to_tensor([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
x = fluid.data(name="x", shape=[None, 3, 5], dtype="float32") # x.shape = [3, 3]
# x.shape = [-1, 3, 5], where -1 indicates batch size, and it will get the exact value in runtime. # x = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
# shape is a 1-D Tensor # shape can be a 1-D Tensor or list or tuple.
crop_shape = fluid.data(name="crop_shape", shape=[3], dtype="int32") shape = paddle.to_tensor([2, 2], dtype='int32')
crop0 = fluid.layers.crop_tensor(x, shape=crop_shape) # shape = [2, 2]
# crop0.shape = [-1, -1, -1], it means crop0.shape[0] = x.shape[0] in runtime. # shape = (2, 2)
out = paddle.crop(x, shape)
# or shape is a list in which each element is a constant # out.shape = [2, 2]
crop1 = fluid.layers.crop_tensor(x, shape=[-1, -1, 3], offsets=[0, 1, 0]) # out = [[1,2], [4,5]]
# crop1.shape = [-1, 2, 3]
# offsets can be a 1-D Tensor or list or tuple.
# or shape is a list in which each element is a constant or Variable offsets = paddle.to_tensor([0, 1], dtype='int32')
y = fluid.data(name="y", shape=[3, 8, 8], dtype="float32") # offsets = [1, 0]
dim1 = fluid.data(name="dim1", shape=[1], dtype="int32") # offsets = (1, 1)
crop2 = fluid.layers.crop_tensor(y, shape=[3, dim1, 4]) out = paddle.crop(x, shape, offsets)
# crop2.shape = [3, -1, 4] # out.shape = [2, 2]
# if offsets = [0, 0], out = [[1,2], [4,5]]
# offsets is a 1-D Tensor # if offsets = [0, 1], out = [[2,3], [5,6]]
crop_offsets = fluid.data(name="crop_offsets", shape=[3], dtype="int32") # if offsets = [1, 0], out = [[4,5], [7,8]]
crop3 = fluid.layers.crop_tensor(x, shape=[-1, 2, 3], offsets=crop_offsets) # if offsets = [1, 1], out = [[5,6], [8,9]]
# crop3.shape = [-1, 2, 3]
# offsets is a list in which each element is a constant or Variable
offsets_var = fluid.data(name="dim1", shape=[1], dtype="int32")
crop4 = fluid.layers.crop_tensor(x, shape=[-1, 2, 3], offsets=[0, 1, offsets_var])
# crop4.shape = [-1, 2, 3]
""" """
helper = LayerHelper('crop_tensor', **locals()) helper = LayerHelper('crop_tensor', **locals())
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册