From 263e12e45500b245c3d2588d6bb5b9ae358660f3 Mon Sep 17 00:00:00 2001 From: Cheerego <35982308+shanyi15@users.noreply.github.com> Date: Thu, 6 Dec 2018 23:59:36 +0800 Subject: [PATCH] adjust_beginners_structure (#446) * adjust_beginners_structure * Update index.rst --- .../design_idea/fluid_design_idea.md | 2 +- .../design_idea/image/executor_design.png | Bin .../design_idea/image/fluid_process.png | Bin doc/fluid/advanced_usage/index.rst | 5 +- doc/fluid/api/index_cn.rst | 1 - doc/fluid/beginners_guide/basics/index.rst | 77 ++++- doc/fluid/beginners_guide/index.rst | 2 +- .../howto/basic_concept/index_cn.rst | 12 + .../lod_tensor.rst} | 297 ++++++++++-------- .../user_guides/howto/prepare_data/index.rst | 11 - doc/fluid/user_guides/index.rst | 5 +- 11 files changed, 263 insertions(+), 149 deletions(-) rename doc/fluid/{user_guides => advanced_usage}/design_idea/fluid_design_idea.md (99%) rename doc/fluid/{user_guides => advanced_usage}/design_idea/image/executor_design.png (100%) rename doc/fluid/{user_guides => advanced_usage}/design_idea/image/fluid_process.png (100%) create mode 100644 doc/fluid/user_guides/howto/basic_concept/index_cn.rst rename doc/fluid/user_guides/howto/{prepare_data/lod_tensor.md => basic_concept/lod_tensor.rst} (56%) diff --git a/doc/fluid/user_guides/design_idea/fluid_design_idea.md b/doc/fluid/advanced_usage/design_idea/fluid_design_idea.md similarity index 99% rename from doc/fluid/user_guides/design_idea/fluid_design_idea.md rename to doc/fluid/advanced_usage/design_idea/fluid_design_idea.md index 4b469ca3a..5d785f7b2 100644 --- a/doc/fluid/user_guides/design_idea/fluid_design_idea.md +++ b/doc/fluid/advanced_usage/design_idea/fluid_design_idea.md @@ -1,4 +1,4 @@ -# Fluid设计思想 +# 设计思想 ## 简介 diff --git a/doc/fluid/user_guides/design_idea/image/executor_design.png b/doc/fluid/advanced_usage/design_idea/image/executor_design.png similarity index 100% rename from doc/fluid/user_guides/design_idea/image/executor_design.png rename to doc/fluid/advanced_usage/design_idea/image/executor_design.png diff --git a/doc/fluid/user_guides/design_idea/image/fluid_process.png b/doc/fluid/advanced_usage/design_idea/image/fluid_process.png similarity index 100% rename from doc/fluid/user_guides/design_idea/image/fluid_process.png rename to doc/fluid/advanced_usage/design_idea/image/fluid_process.png diff --git a/doc/fluid/advanced_usage/index.rst b/doc/fluid/advanced_usage/index.rst index 35193bd64..795547fbd 100644 --- a/doc/fluid/advanced_usage/index.rst +++ b/doc/fluid/advanced_usage/index.rst @@ -6,6 +6,8 @@ 如果您非常熟悉 Fluid,期望获得更高效的模型或者定义自己的Operator,请阅读: + - `Fluid 设计思想 <../advanced_usage/design_idea/fluid_design_idea.html>`_:介绍 Fluid 底层的设计思想,帮助您更好的理解框架运作过程 + - `预测部署 <../advanced_usage/deploy/index_cn.html>`_ :介绍如何应用训练好的模型进行预测 - `新增operator <../advanced_usage/development/new_op/index_cn.html>`_ :介绍新增operator的方法及注意事项 @@ -21,8 +23,9 @@ .. toctree:: :hidden: + design_idea/fluid_design_idea.md deploy/index_cn.rst development/new_op/index_cn.rst + development/profiling/index_cn.rst development/contribute_to_paddle/index_cn.rst development/write_docs_cn.md - development/profiling/index_cn.rst diff --git a/doc/fluid/api/index_cn.rst b/doc/fluid/api/index_cn.rst index dcda7e97f..39a2028d3 100644 --- a/doc/fluid/api/index_cn.rst +++ b/doc/fluid/api/index_cn.rst @@ -5,7 +5,6 @@ API Reference .. toctree:: :maxdepth: 1 - api_guides/index.rst fluid.rst average.rst backward.rst diff --git a/doc/fluid/beginners_guide/basics/index.rst b/doc/fluid/beginners_guide/basics/index.rst index f29332090..5371748f3 100644 --- a/doc/fluid/beginners_guide/basics/index.rst +++ b/doc/fluid/beginners_guide/basics/index.rst @@ -1,12 +1,17 @@ ################ -深度学习基础知识 +深度学习基础 ################ -.. todo:: +本章由6篇文档组成,它们按照简单到难的顺序排列,将指导您如何使用PaddlePaddle完成基础的深度学习任务 + +本章文档涉及大量了深度学习基础知识,也介绍了如何使用PaddlePaddle实现这些内容,请参阅以下说明了解如何使用: + +内容简介 +====================== + +您现在在看的这本书是一本“交互式”电子书 —— 每一章都可以运行在一个Jupyter Notebook里。 - 概述 - .. toctree:: :titlesonly: @@ -16,3 +21,67 @@ understand_sentiment/index.md label_semantic_roles/index.md machine_translation/index.md + +我们把Jupyter、PaddlePaddle、以及各种被依赖的软件都打包进一个Docker image了。所以您不需要自己来安装各种软件,只需要安装Docker即可。对于各种Linux发行版,请参考 https://www.docker.com 。如果您使用 `Windows `_ 或者 `Mac `_,可以考虑 `给Docker更多内存和CPU资源 `_ 。 + +使用方法 +====================== + +本书默认使用CPU训练,若是要使用GPU训练,使用步骤会稍有变化,请参考下文“使用GPU训练” + +使用CPU训练 +>>>>>>>>>>>> + +只需要在命令行窗口里运行: + +.. code-block:: shell + + docker run -d -p 8888:8888 paddlepaddle/book + +即可从DockerHub.com下载和运行本书的Docker image。阅读和在线编辑本书请在浏览器里访问 http://localhost:8888 + +如果您访问DockerHub.com很慢,可以试试我们的另一个镜像docker.paddlepaddlehub.com: + +:: + + docker run -d -p 8888:8888 docker.paddlepaddlehub.com/book + + +使用GPU训练 +>>>>>>>>>>>>> + +为了保证GPU驱动能够在镜像里面正常运行,我们推荐使用 `nvidia-docker `_ 来运行镜像。请先安装nvidia-docker,之后请运行: + +:: + + nvidia-docker run -d -p 8888:8888 paddlepaddle/book:latest-gpu + + +或者使用国内的镜像请运行: + +:: + + nvidia-docker run -d -p 8888:8888 docker.paddlepaddlehub.com/book:latest-gpu + + +还需要将以下代码 + +.. code-block:: python + + use_cuda = False + + +改成: + +.. code-block:: python + + use_cuda = True + +贡献新章节 +============= + +您要是能贡献新的章节那就太好了!请发Pull Requests把您写的章节加入到 :code:`pending` 下面的一个子目录里。当这一章稳定下来,我们一起把您的目录挪到根目录。 + +为了写作、运行、调试,您需要安装Python 2.x和Go >1.5, 并可以用 `脚本程序 `_ 来生成新的Docker image。 + +**Please Note:** We also provide `English Readme `_ for PaddlePaddle book diff --git a/doc/fluid/beginners_guide/index.rst b/doc/fluid/beginners_guide/index.rst index f7759b92c..a2c7d7425 100644 --- a/doc/fluid/beginners_guide/index.rst +++ b/doc/fluid/beginners_guide/index.rst @@ -22,7 +22,7 @@ PaddlePaddle (PArallel Distributed Deep LEarning)是一个易用、高效、灵 - `快速入门 <../beginners_guide/quick_start/index.html>`_:提供线性回归和识别数字两个入门级模型,帮助您快速上手训练网络 - - `深度学习基础知识 <../beginners_guide/basics/index.html>`_:覆盖图像分类、个性化推荐、机器翻译等多个深度领域的基础知识,提供 Fluid 实现案例 + - `深度学习基础 <../beginners_guide/basics/index.html>`_:覆盖图像分类、个性化推荐、机器翻译等多个深度领域的基础知识,提供 Fluid 实现案例 .. toctree:: diff --git a/doc/fluid/user_guides/howto/basic_concept/index_cn.rst b/doc/fluid/user_guides/howto/basic_concept/index_cn.rst new file mode 100644 index 000000000..010b4bfaa --- /dev/null +++ b/doc/fluid/user_guides/howto/basic_concept/index_cn.rst @@ -0,0 +1,12 @@ +############ +基本概念 +############ + +本文介绍Fluid版本基本使用概念: + +- `LoD-Tensor使用说明 `_ : LoD-Tensor是Fluid中特有的概念,它在Tensor基础上附加了序列信息,支持处理变长数据。 + +.. toctree:: + :hidden: + + lod_tensor.rst diff --git a/doc/fluid/user_guides/howto/prepare_data/lod_tensor.md b/doc/fluid/user_guides/howto/basic_concept/lod_tensor.rst similarity index 56% rename from doc/fluid/user_guides/howto/prepare_data/lod_tensor.md rename to doc/fluid/user_guides/howto/basic_concept/lod_tensor.rst index 01b28d2a3..67fa5af5e 100644 --- a/doc/fluid/user_guides/howto/prepare_data/lod_tensor.md +++ b/doc/fluid/user_guides/howto/basic_concept/lod_tensor.rst @@ -1,10 +1,13 @@ -# LoD-Tensor使用说明 +################## +LoD-Tensor使用说明 +################## LoD(Level-of-Detail) Tensor是Fluid中特有的概念,它在Tensor基础上附加了序列信息。Fluid中可传输的数据包括:输入、输出、网络中的可学习参数,全部统一使用LoD-Tensor表示。 阅读本文档将帮助您了解 Fluid 中的 LoD-Tensor 设计思想,以便您更灵活的使用这一数据类型。 -## 变长序列的挑战 +变长序列的挑战 +================ 大多数的深度学习框架使用Tensor表示一个mini-batch。 @@ -19,7 +22,8 @@ LoD(Level-of-Detail) Tensor是Fluid中特有的概念,它在Tensor基础上附 Fluid引入了一个索引数据结构(LoD)来将张量分割成序列。 -## LoD 索引 +LoD 索引 +=========== 为了更好的理解LoD的概念,本节提供了几个例子供您参考: @@ -27,97 +31,118 @@ Fluid引入了一个索引数据结构(LoD)来将张量分割成序列。 假设一个mini-batch中有3个句子,每个句子中分别包含3个、1个和2个单词。我们可以用(3+1+2)xD维Tensor 加上一些索引信息来表示这个mini-batch: -``` -3 1 2 -| | | | | | -``` -上述表示中,每一个`|` 代表一个D维的词向量,数字3,1,2构成了 1-level LoD。 +.. code-block :: python + + 3 1 2 + | | | | | | + +上述表示中,每一个 :code:`|` 代表一个D维的词向量,数字3,1,2构成了 1-level LoD。 **递归序列** + 让我们来看另一个2-level LoD-Tensor的例子:假设存在一个mini-batch中包含3个句子、1个句子和2个句子的文章,每个句子都由不同数量的单词组成,则这个mini-batch的样式可以看作: -``` -3 1 2 -3 2 4 1 2 3 -||| || |||| | || ||| -``` + +.. code-block :: python + + 3 1 2 + 3 2 4 1 2 3 + ||| || |||| | || ||| + 表示的LoD信息为: -``` -[[3,1,2]/*level=0*/,[3,2,4,1,2,3]/*level=1*/] -``` + +.. code-block :: python + + [[3,1,2]/*level=0*/,[3,2,4,1,2,3]/*level=1*/] + **视频的mini-batch** 在视觉任务中,时常需要处理视频和图像这些元素是高维的对象,假设现存的一个nimi-batch包含3个视频,分别有3个,1个和2个帧,每个帧都具有相同大小:640x480,则这个mini-batch可以被表示为: -``` -3 1 2 -口口口 口 口口 -``` -最底层tensor大小为(3+1+2)x640x480,每一个`口` 表示一个640x480的图像 +.. code-block :: python + + 3 1 2 + 口口口 口 口口 + + +最底层tensor大小为(3+1+2)x640x480,每一个 :code:`口` 表示一个640x480的图像 **图像的mini-batch** 在传统的情况下,比如有N个固定大小的图像的mini-batch,LoD-Tensor表示为: -``` -1 1 1 1 1 -口口口口 ... 口 -``` +.. code-block :: python + + 1 1 1 1 1 + 口口口口 ... 口 + 在这种情况下,我们不会因为索引值都为1而忽略信息,仅仅把LoD-Tensor看作是一个普通的张量: -``` -口口口口 ... 口 -``` + +.. code-block :: python + + 口口口口 ... 口 **模型参数** 模型参数只是一个普通的张量,在Fluid中它们被表示为一个0-level LoD-Tensor。 - -## LoDTensor的偏移表示 +LoDTensor的偏移表示 +===================== 为了快速访问基本序列,Fluid提供了一种偏移表示的方法——保存序列的开始和结束元素,而不是保存长度。 在上述例子中,您可以计算基本元素的长度: -``` -3 2 4 1 2 3 -``` + +.. code-block :: python + + 3 2 4 1 2 3 + 将其转换为偏移表示: -``` -0 3 5 9 10 12 15 - = = = = = = - 3 2+3 4+5 1+9 2+10 3+12 -``` + +.. code-block :: python + + 0 3 5 9 10 12 15 + = = = = = = + 3 2+3 4+5 1+9 2+10 3+12 + 所以我们知道第一个句子是从单词0到单词3,第二个句子是从单词3到单词5。 类似的,LoD的顶层长度 -``` -3 1 2 -``` + +.. code-block :: python + + 3 1 2 + 可以被转化成偏移形式: -``` -0 3 4 6 - = = = - 3 3+1 4+2 -``` + +.. code-block :: python + + 0 3 4 6 + = = = + 3 3+1 4+2 因此该LoD-Tensor的偏移表示为: -``` -0 3 4 6 - 3 5 9 10 12 15 -``` -## LoD-Tensor +.. code-block :: python + + 0 3 4 6 + 3 5 9 10 12 15 + + +LoD-Tensor +============= 一个LoD-Tensor可以被看作是一个树的结构,树叶是基本的序列元素,树枝作为基本元素的标识。 -在 Fluid 中 LoD-Tensor 的序列信息有两种表述形式:原始长度和偏移量。在 Paddle 内部采用偏移量的形式表述 LoD-Tensor,以获得更快的序列访问速度;在 python API中采用原始长度的形式表述 LoD-Tensor 方便用户理解和计算,并将原始长度称为:`recursive_sequence_lengths` 。 +在 Fluid 中 LoD-Tensor 的序列信息有两种表述形式:原始长度和偏移量。在 Paddle 内部采用偏移量的形式表述 LoD-Tensor,以获得更快的序列访问速度;在 python API中采用原始长度的形式表述 LoD-Tensor 方便用户理解和计算,并将原始长度称为: :code:`recursive_sequence_lengths` 。 以上文提到的一个2-level LoD-Tensor为例: -``` -3 1 2 -3 2 4 1 2 3 -||| || |||| | || ||| -``` + +.. code-block :: python + + 3 1 2 + 3 2 4 1 2 3 + ||| || |||| | || ||| - 以偏移量表示此 LoD-Tensor:[ [0,3,4,6] , [0,3,5,9,10,12,15] ], - 以原始长度表达此 Lod-Tensor:recursive_sequence_lengths=[ [3-0 , 4-3 , 6-4] , [3-0 , 5-3 , 9-5 , 10-9 , 12-10 , 15-12] ]。 @@ -125,115 +150,133 @@ Fluid引入了一个索引数据结构(LoD)来将张量分割成序列。 以文字序列为例: [3,1,2] 可以表示这个mini-batch中有3篇文章,每篇文章分别有3、2、1个句子,[3,2,4,1,2,3] 表示每个句子中分别含有3、2、4、1、2、3个字。 recursive_seq_lens 是一个双层嵌套列表,也就是列表的列表,最外层列表的size表示嵌套的层数,也就是lod-level的大小;内部的每个列表,对应表示每个lod-level下,每个元素的大小。 -```python -#查看lod-tensor嵌套层数 -print len(recursive_seq_lengths) -# output:2 -#查看最基础元素个数 -print sum(recursive_seq_lengths[-1]) -# output:15 (3+2+4+1+2+3=15) +.. code-block :: python + + #查看lod-tensor嵌套层数 + print len(recursive_seq_lengths) + # output:2 -``` + #查看最基础元素个数 + print sum(recursive_seq_lengths[-1]) + # output:15 (3+2+4+1+2+3=15) -## 代码示例 +代码示例 +=========== 本节代码将根据指定的级别y-lod,扩充输入变量x。本例综合了LoD-Tensor的多个重要概念,跟随代码实现,您将: -- 直观理解Fluid中 `fluid.layers.sequence_expand` 的实现过程 +- 直观理解Fluid中 :code:`fluid.layers.sequence_expand` 的实现过程 - 掌握如何在Fluid中创建LoD-Tensor - 学习如何打印LoDTensor内容 **创建LoD-Tensor** -Fluid中可以通过`fluid.create_lod_tensor()`创建一个LoD-Tensor,使用说明请参考[API reference](http://paddlepaddle.org/documentation/api/zh/develop/fluid.html#create-lod-tensor)。需要注意的是,这个API只能支持int64的数据,如果您希望处理float32的数据,推荐您使用下述方式创建lod_tensor: +Fluid中可以通过 :code:`fluid.create_lod_tensor()` 创建一个LoD-Tensor,使用说明请参考 :ref:`api_fluid_layers_sequence-expand` 。需要注意的是,这个API只能支持int64的数据,如果您希望处理float32的数据,推荐您使用下述方式创建lod_tensor: 使用fluid.LoDTensor()创建一个LoD-Tensor,并为其指定数据、运算场所和LoD值: -```python -import paddle.fluid as fluid -import numpy as np - -def create_lod_tensor(data, lod, place): - res = fluid.LoDTensor() - res.set(data, place) - res.set_lod(lod) - return res -``` + +.. code-block :: python + import paddle.fluid as fluid + import numpy as np + + def create_lod_tensor(data, lod, place): + res = fluid.LoDTensor() + res.set(data, place) + res.set_lod(lod) + return res + **定义计算过程** -layers.sequence_expand通过获取 y 的 lod 值对 x 的数据进行扩充,关于`fluid.layers.sequence_expand` 的功能说明,请先阅读[API reference](http://www.paddlepaddle.org/documentation/api/zh/0.15.0/layers.html#sequence-expand)。 +layers.sequence_expand通过获取 y 的 lod 值对 x 的数据进行扩充,关于 :code:`fluid.layers.sequence_expand` 的功能说明,请先阅读 :ref:`api_fluid_layers_sequence-expand` 。 序列扩充代码实现: -```python -x = fluid.layers.data(name='x', shape=[1], dtype='float32', lod_level=0) -y = fluid.layers.data(name='y', shape=[1], dtype='float32', lod_level=1) -out = fluid.layers.sequence_expand(x=x, y=y, ref_level=0) -``` + +.. code-block :: python + + x = fluid.layers.data(name='x', shape=[1], dtype='float32', lod_level=0) + y = fluid.layers.data(name='y', shape=[1], dtype='float32', lod_level=1) + out = fluid.layers.sequence_expand(x=x, y=y, ref_level=0) + *说明*:输出LoD-Tensor的维度仅与传入的真实数据维度有关,在定义网络结构阶段为x、y设置的shape值,仅作为占位,并不影响结果。 **创建Executor** -```python -place = fluid.CPUPlace() -exe = fluid.Executor(place) -exe.run(fluid.default_startup_program()) -``` - + +.. code-block :: python + + place = fluid.CPUPlace() + exe = fluid.Executor(place) + exe.run(fluid.default_startup_program()) **准备数据** -这里我们使用[偏移量](#LoDTensor的偏移表示)的方法表示Tensor的LoD索引: +这里我们使用偏移量的方法表示Tensor的LoD索引: 假使x_d 为一个LoDTensor: -``` -x.lod = [[0,1,4]] -x.data = [[1],[2],[3],[4]] -x.dims = [4,1] -``` + +.. code-block :: shell + + x.lod = [[0,1,4]] + x.data = [[1],[2],[3],[4]] + x.dims = [4,1] + y_d 也为一个LoDTensor: -``` -y.lod = [[0, 1, 4], - [0, 2, 3, 5, 6]] -``` + +.. code-block :: shell + + y.lod = [[0, 1, 4], + [0, 2, 3, 5, 6]] + 其中,输出值只与 y 的LoD值有关,y_d 的 data 值在这里并不参与计算,维度上与LoD[-1]一致即可。 预期输出结果为: -``` -#预期输出lod的原始长度 -out.lod = [ [1, 3, 3, 3]] -#预期输出结果 -out.data = [ [1],[2],[3],[4],[2],[3],[4],[2],[3],[4]] -``` + +.. code-block :: shell + + #预期输出lod的原始长度 + out.lod = [ [1, 3, 3, 3]] + #预期输出结果 + out.data = [ [1],[2],[3],[4],[2],[3],[4],[2],[3],[4]] + 实现代码如下: -```python -x_d = create_lod_tensor(np.array([[1], [2],[3],[4]]), [[0,1,4]], place) -y_d = create_lod_tensor(np.array([[1],[1],[1],[1],[1],[1]]), [[0,1,4], [0,2,3,5,6]], place) -``` + +.. code-block :: python + + x_d = create_lod_tensor(np.array([[1], [2],[3],[4]]), [[0,1,4]], place) + y_d = create_lod_tensor(np.array([[1],[1],[1],[1],[1],[1]]), [[0,1,4], [0,2,3,5,6]], place) + **执行运算** -在Fluid中,LoD>1的Tensor与其他类型数据一样,使用feed定义数据传入顺序。此外,由于输出results是带有LoD信息的Tensor,需在exe.run( )中添加`return_numpy=False`参数,获得LoD-Tensor的输出结果。 -```python -feeder = fluid.DataFeeder(place=place, feed_list=[x, y]) -results = exe.run(fluid.default_main_program(), - feed={'x':x_d, 'y': y_d }, - fetch_list=[out],return_numpy=False) -``` +在Fluid中,LoD>1的Tensor与其他类型数据一样,使用feed定义数据传入顺序。此外,由于输出results是带有LoD信息的Tensor,需在exe.run( )中添加 :code: `return_numpy=False`参数,获得LoD-Tensor的输出结果。 + +.. code-block :: python + + feeder = fluid.DataFeeder(place=place, feed_list=[x, y]) + results = exe.run(fluid.default_main_program(), + feed={'x':x_d, 'y': y_d }, + fetch_list=[out],return_numpy=False) + **查看LodTensor结果** 由于LoDTensor的特殊属性,无法直接print查看内容,常用操作时将LoD-Tensor作为网络的输出fetch出来,然后执行 numpy.array(lod_tensor), 就能转成numpy array: -```python -np.array(results[0]) -``` +.. code-block :: python + + np.array(results[0]) + 输出结果为: -``` -array([[1],[2],[3],[4],[2],[3],[4],[2],[3],[4]]) -``` -可以看到与[准备数据](#准备数据)一节中的预期结果一致。 -## 总结 +.. code-block :: python + + array([[1],[2],[3],[4],[2],[3],[4],[2],[3],[4]]) + +可以看到与准备数据一节中的预期结果一致。 + +总结 +======== 至此,相信您已经基本掌握了LoD-Tensor的概念,尝试修改上述代码中的 x_d 与 y_d,观察输出结果,有助于您更好的理解这一灵活的结构。 -更多LoDTensor的模型应用,可以参考新手入门中的[词向量](../../../beginners_guide/basics/word2vec/index.html)、[个性化推荐](../../../beginners_guide/basics/recommender_system/index.html)、[情感分析](../../../beginners_guide/basics/understand_sentiment/index.html)等指导教程。 +更多LoDTensor的模型应用,可以参考新手入门中的 `词向量 <../../../beginners_guide/basics/word2vec/index.html>`_ 、`个性化推荐 <../../../beginners_guide/basics/recommender_system/index.html>`_、`情感分析 <../../../beginners_guide/basics/understand_sentiment/index.html>`_ 等指导教程。 -更高阶的应用案例,请参考[模型库](../../../user_guides/models/index.html)中的相关内容。 +更高阶的应用案例,请参考 `模型库 <../../../user_guides/models/index_cn.html>`_ 中的相关内容。 diff --git a/doc/fluid/user_guides/howto/prepare_data/index.rst b/doc/fluid/user_guides/howto/prepare_data/index.rst index 00a043c43..338035b8c 100644 --- a/doc/fluid/user_guides/howto/prepare_data/index.rst +++ b/doc/fluid/user_guides/howto/prepare_data/index.rst @@ -55,14 +55,3 @@ Fluid提供PyReader异步数据传入方式,数据传入与模型训练/预测 :maxdepth: 1 use_py_reader.rst - - -LoD-Tensor简介 -##################### - -LoD-Tensor是Fluid中特有的概念,它在Tensor基础上附加了序列信息,支持处理变长数据。具体请参考: - -.. toctree:: - :maxdepth:2 - - lod_tensor.md diff --git a/doc/fluid/user_guides/index.rst b/doc/fluid/user_guides/index.rst index 3513da227..f828f3d0b 100644 --- a/doc/fluid/user_guides/index.rst +++ b/doc/fluid/user_guides/index.rst @@ -6,8 +6,7 @@ 如果您已经掌握了新手入门阶段的内容,期望可以针对实际问题建模、搭建自己网络,本模块提供了一些 Fluid 的使用细节供您参考: - - - `Fluid 设计思想 <../user_guides/design_idea/fluid_design_idea.html>`_:介绍 Fluid 底层的设计思想,帮助用户更好的理解框架运作过程 + - `基本概念 <../user_guides/howto/basic_concept/index_cn.rst>`_ :介绍了Fluid的基本使用概念 - `准备数据 <../user_guides/howto/prepare_data/index.html>`_ :介绍使用 Fluid 训练网络时,数据的支持类型及传输方法 @@ -27,9 +26,9 @@ .. toctree:: :hidden: + howto/basic_concept/index_cn.rst howto/prepare_data/index howto/configure_simple_model/index howto/training/index howto/evaluation_and_debugging/index models/index_cn.rst - design_idea/fluid_design_idea.md -- GitLab