未验证 提交 be5b298b 编写于 作者: W wangchaochaohu 提交者: GitHub

refine the doc for gather_nd test=develop (#2468)

上级 2bb43e14
.. _api_tensor_cn_gather_nd:
.. THIS FILE IS GENERATED BY `gen_doc.{py|sh}`
!DO NOT EDIT THIS FILE MANUALLY!
.. _api_tensor_manipulation_gather_nd:
gather_nd
-------------------------------
:doc_source: paddle.fluid.layers.gather_nd
----------
.. autofunction:: paddle.tensor.manipulation.gather_nd
:noindex:
......@@ -5,11 +5,6 @@ gather_nd
.. py:function:: paddle.fluid.layers.gather_nd(input, index, name=None)
:alias_main: paddle.gather_nd
:alias: paddle.gather_nd,paddle.tensor.gather_nd,paddle.tensor.manipulation.gather_nd
:old_api: paddle.fluid.layers.gather_nd
该OP是 :code:`gather` 的高维推广,并且支持多轴同时索引。 :code:`index` 是一个K维度的张量,它可以认为是从 :code:`input` 中取K-1维张量,每一个元素是一个切片:
......@@ -56,18 +51,18 @@ gather_nd
参数:
- **input** (Variable) - 输入张量,数据类型可以是int32,int64,float32,float64, bool。
- **index** (Variable) - 输入的索引张量,数据类型为非负int32或非负int64。它的维度 :code:`index.rank` 必须大于1,并且 :code:`index.shape[-1] <= input.rank` 。
- **name** (string) - 该层的名字,默认值为None,表示会自动命名
- **input** (Tensor) - 输入Tensor,数据类型可以是int32,int64,float32,float64, bool。
- **index** (Tensor) - 输入的索引Tensor,其数据类型为int32或者int64。它的维度 :code:`index.rank` 必须大于1,并且 :code:`index.shape[-1] <= input.rank` 。
- **name** (str,可选)- 具体用法请参见 :ref:`api_guide_Name` ,一般无需设置,默认值为None
返回:shape为index.shape[:-1] + input.shape[index.shape[-1]:]的Tensor|LoDTensor,数据类型与 :code:`input` 一致。
返回类型:Variable
**代码示例**:
.. code-block:: python
import paddle
import paddle.fluid as fluid
x = fluid.layers.data(name='x', shape=[3, 4, 5], dtype='float32')
index = fluid.layers.data(name='index', shape=[2, 2], dtype='int32')
......
......@@ -2,6 +2,75 @@
gather_nd
-------------------------------
:doc_source: paddle.fluid.layers.gather_nd
.. py:function:: paddle.gather_nd(x, index, name=None)
该OP是 :code:`gather` 的高维推广,并且支持多轴同时索引。 :code:`index` 是一个K维度的张量,它可以认为是从 :code:`x` 中取K-1维张量,每一个元素是一个切片:
.. math::
output[(i_0, ..., i_{K-2})] = x[index[(i_0, ..., i_{K-2})]]
显然, :code:`index.shape[-1] <= x.rank` 并且输出张量的维度是 :code:`index.shape[:-1] + x.shape[index.shape[-1]:]` 。
示例:
::
给定:
x = [[[ 0, 1, 2, 3],
[ 4, 5, 6, 7],
[ 8, 9, 10, 11]],
[[12, 13, 14, 15],
[16, 17, 18, 19],
[20, 21, 22, 23]]]
x.shape = (2, 3, 4)
- 案例 1:
index = [[1]]
gather_nd(x, index)
= [x[1, :, :]]
= [[12, 13, 14, 15],
[16, 17, 18, 19],
[20, 21, 22, 23]]
- 案例 2:
index = [[0,2]]
gather_nd(x, index)
= [x[0, 2, :]]
= [8, 9, 10, 11]
- 案例 3:
index = [[1, 2, 3]]
gather_nd(x, index)
= [x[1, 2, 3]]
= [23]
参数:
- **x** (Tensor) - 输入Tensor,数据类型可以是int32,int64,float32,float64, bool。
- **index** (Tensor) - 输入的索引Tensor,其数据类型int32或者int64。它的维度 :code:`index.rank` 必须大于1,并且 :code:`index.shape[-1] <= x.rank` 。
- **name** (str,可选)- 具体用法请参见 :ref:`api_guide_Name` ,一般无需设置,默认值为None。
返回:shape为index.shape[:-1] + x.shape[index.shape[-1]:]的Tensor,数据类型与 :code:`x` 一致。
**代码示例**:
.. code-block:: python
import paddle
import numpy as np
paddle.disable_static()
np_x = np.array([[[1, 2], [3, 4], [5, 6]],
[[7, 8], [9, 10], [11, 12]]])
np_index = [[0, 1]]
x = paddle.to_tensor(np_x)
index = paddle.to_tensor(np_index)
output = paddle.gather_nd(x, index) #[[3, 4]]
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册