Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
PaddlePaddle
FluidDoc
提交
a9fdd081
F
FluidDoc
项目概览
PaddlePaddle
/
FluidDoc
通知
8
Star
2
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
23
列表
看板
标记
里程碑
合并请求
111
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
F
FluidDoc
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
23
Issue
23
列表
看板
标记
里程碑
合并请求
111
合并请求
111
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
未验证
提交
a9fdd081
编写于
9月 26, 2019
作者:
H
huzhiqiang
提交者:
GitHub
9月 26, 2019
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
(4)modify reorder_lod_tensor_by_rank doc (#1310)
* (4) modify reorder_lod_tensor_by_rank doc
上级
ac3b2fe2
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
17 addition
and
20 deletion
+17
-20
doc/fluid/api_cn/layers_cn/reorder_lod_tensor_by_rank_cn.rst
doc/fluid/api_cn/layers_cn/reorder_lod_tensor_by_rank_cn.rst
+17
-20
未找到文件。
doc/fluid/api_cn/layers_cn/reorder_lod_tensor_by_rank_cn.rst
浏览文件 @
a9fdd081
...
@@ -6,30 +6,32 @@ reorder_lod_tensor_by_rank
...
@@ -6,30 +6,32 @@ reorder_lod_tensor_by_rank
.. py:function:: paddle.fluid.layers.reorder_lod_tensor_by_rank(x, rank_table)
.. py:function:: paddle.fluid.layers.reorder_lod_tensor_by_rank(x, rank_table)
函数参数 ``X`` 是由多个序列(sequence)组成的的一个数据批(batch)。``rank_table`` 存储着batch中序列的重新排列规则
。
该OP根据 ``rank_table`` 中提供的 ``LoDRankTable`` 类型的顺序信息来实现对 ``X`` 的重新排列
。
该算子(operator)根据 ``rank_table`` 中提供的规则信息来实现对 ``X`` 的重新排列
。
接口参数 ``X`` 是由多个序列(Sequence)组成的的一个批序列(Batch of Sequences), ``rank_table`` 存储着对batch中序列重新排列的 ``LoDRankTable`` 类型的顺序信息
。
例如:
::
假设在 ``rank_table`` 中存储的序列索引为 :math:`[3,0,2,1]` , ``X`` 将会被这样被重新排列:
``X`` 中的第四个序列(即索引为3的序列,后面以此类推)会变成排列后的batch中的第一个,紧接着就是原来batch中的第一个元素,第三个元素,和第二个元素。
简言之,若有原batch::math:`X = [Seq0, Seq1, Seq2, Seq3]` 且 RankTable 中的索引为 :math:`[3,0,2,1]` ,那么输出即为 :math:`Out = [Seq3, Seq0, Seq2, Seq1]` ,它携带着新的LoD信息。
如果 ``X`` 的LoD信息是空的,这表明 ``X`` 不是序列型数据。这和由多个定长为1的序列组成的batch是相同的情况。此时,该函数将对 ``X`` 中数据 在第一轴(axis)上按 ``rank_table`` 里的规则加以排列。
例如,现有 :math:`X = [Slice0, Slice1, Slice2, Slice3]` ,并且它LoD信息为空,在 ``rank_table`` 索引为 :math:`[3, 0, 2, 1]` 。则 :math:`Out = [Slice3, Slice0, Slice2, Slice1]` ,并且不在其中追加LoD信息。
例如:
注意:该OP对 ``X`` 进行的排序所依据的 ``LoDRankTable`` 不一定是在 ``X`` 的基础上得出来的。它可以由其他不同的序列得出,并由该OP依据这个 ``LoDRankTable`` 来对 ``X`` 排序。
假设在 RankTable 中存储的序列索引为 [3,0,2,1], X 将会被这样被重新排列:
X 中的第四个序列(即索引为3的序列,后面以此类推)会变成排列后的batch中的第一个,紧接着就是原来batch中的第一个元素,第三个元素,和第二个元素。
简言之,若有原batch:X = [Seq0, Seq1, Seq2, Seq3] 且 RankTable 中的索引为 [3,0,2,1],那么输出即为 Out = [Seq3, Seq0, Seq2, Seq1] ,它携带着新的LoD信息。
如果 X 的LoD信息是空的,这表明 X 不是序列型数据。这和由多个定长为1的序列组成的batch是相同的情况。此时,该函数将对 X 中的切片(slice) 在第一轴(axis)上按 rank_table 里的规则加以排列。
例如,现有 X = [Slice0, Slice1, Slice2, Slice3] ,并且它LoD信息为空,在 RankTable 索引为[3, 0, 2, 1]。则 Out = [Slice3, Slice0, Slice2, Slice1] ,并且不在其中追加LoD信息。
注意,该operator对 ``X`` 进行的排序所依据的 ``LoDRankTable`` 不一定是在 ``X`` 的基础上得出来的。它可以由其他不同的序列得出,并由该operator依据这个 ``LoDRankTable`` 来对 ``X`` 排序。
参数:
参数:
- **x(Variable)** - (LoDTensor),待根据提供的 ``RankTable`` 进行排序的LoD tensor
- **x** (Variable) - 待根据提供的 ``rank_table`` 进行排序的LoDTensor
- **rank_table(Variable)** - 变量
- **rank_table** (Variable) - 提供对 ``x`` 重新排列的 ``LoDRankTable`` 类型的顺序信息,构造方法举例如下:
.. code-block:: python
rank_data = fluid.layers.data(name=data_desc[1][0], shape=data_desc[1][1])
rank_table = fluid.layers.control_flow.lod_rank_table(rank_data)
返回: 重新排列后的LoDTensor
返回: 重新排列后的LoDTensor
返回类型:
out(Variable)
返回类型:
Variable
**代码示例**:
**代码示例**:
...
@@ -47,8 +49,3 @@ reorder_lod_tensor_by_rank
...
@@ -47,8 +49,3 @@ reorder_lod_tensor_by_rank
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录