Skip to content

Commit

Permalink
飞桨文档相互引用和死链修复 (#5521)
Browse files Browse the repository at this point in the history
* 飞桨文档相互引用和死链修复

* 飞桨文档相互引用与死链(第二批次)

* Update docs/faq/data_cn.md

Co-authored-by: Ligoml <39876205+Ligoml@users.noreply.github.com>
  • Loading branch information
tianxingxia-cn and Ligoml authored Dec 19, 2022
1 parent dc7cbae commit 38fbc14
Show file tree
Hide file tree
Showing 14 changed files with 21 additions and 21 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -63,7 +63,7 @@ API 详细使用方法参考 :ref:`cn_api_fluid_ParallelExecutor` ,简单实

要提高 CPU 分布式的数据 IO 速度,可以首先考虑使用 dataset API 进行数据读取。 dataset 是一种多生产者多消费者模式的数据读取方法,默认情况下耦合数据读取线程与训练线程,在多线程的训练中,dataset 表现出极高的性能优势。

API 接口介绍可以参考:https://www.paddlepaddle.org.cn/documentation/docs/zh/api_cn/dataset_cn/QueueDataset_cn.html
API 接口介绍可以参考: :ref:`cn_api_distributed_QueueDataset`

结合实际的网络,比如 CTR-DNN 模型,引入的方法可以参考:https://github.com/PaddlePaddle/models/tree/release/1.7/PaddleRec/ctr/dnn

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ BFGS 具体原理参考书籍 Jorge Nocedal, Stephen J. Wright, Numerical Optimi
:::::::::
- minimize_bfgs 优化器当前实现为函数形式,与 Paddle 现有 SGD、Adam 优化器等使用略微有些区别。
SGD/Adam 等通过调用 backward()计算梯度,并使用 step()更新网络参数。 而 minimize_bfgs 传入
loss 函数,并返回优化后参数,返回参数需要通过 `paddle.assign <https://www.paddlepaddle.org.cn/documentation/docs/zh/api/paddle/assign_cn.html>`_ 以 inpalce 方式进行更新。具体参考代码示例 1.
loss 函数,并返回优化后参数,返回参数需要通过 :ref:`cn_api_paddle_tensor_creation_assign` 以 inpalce 方式进行更新。具体参考代码示例 1.
- 由于当前实现上一些限制,当前 minimize_bfgs 要求函数输入为一维 Tensor。当输入参数维度超过一维,
可以先将参数展平,使用 minimize_bfgs 计算后,再 reshape 到原有形状,更新参数。具体参考代码示例 2.

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ LBFGS 具体原理参考书籍 Jorge Nocedal, Stephen J. Wright, Numerical Optim
:::::::::
- minimize_bfgs 优化器当前实现为函数形式,与 Paddle 现有 SGD、Adam 优化器等使用略微有些区别。
SGD/Adam 等通过调用 backward()计算梯度,并使用 step()更新网络参数,而 minimize_lbfgs 传入
loss 函数,并返回优化后参数,返回参数需要通过 `paddle.assign <https://www.paddlepaddle.org.cn/documentation/docs/zh/api/paddle/assign_cn.html>`_ 以 inpalce 方式进行更新。具体参考代码示例 1.
loss 函数,并返回优化后参数,返回参数需要通过 :ref:`cn_api_paddle_tensor_creation_assign` 以 inpalce 方式进行更新。具体参考代码示例 1.
- 由于当前实现上一些限制,当前 minimize_bfgs 要求函数输入为一维 Tensor。当输入参数维度超过一维,
可以先将参数展平,使用 minimize_bfgs 计算后,再 reshape 到原有形状,更新参数。具体参考代码示例 2.

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -130,7 +130,7 @@ API 的声明部分,要给出 API 的声明信息;

### API 功能描述

API 功能描述部分只需要尽可能简单的描述出 API 的功能作用即可,要让用户能快速看懂。如 [paddle.add](https://www.paddlepaddle.org.cn/documentation/docs/zh/api/paddle/tensor/math/add_cn.html#add)
API 功能描述部分只需要尽可能简单的描述出 API 的功能作用即可,要让用户能快速看懂。如 [paddle.add](https://www.paddlepaddle.org.cn/documentation/docs/zh/api/paddle/add_cn.html#add)

可以拆解为 3 个部分,功能作用 + 计算公式 + 注解部分,其中:

Expand Down
6 changes: 3 additions & 3 deletions docs/faq/data_cn.md
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ paddle 中推荐使用 `DataLoader`,这是一种灵活的异步加载方式。

##### 问题:有拓展 Tensor 维度的 Op 吗?

+ 答复:请参考 API [paddle.unsqueeze](https://www.paddlepaddle.org.cn/documentation/docs/zh/api/paddle/tensor/manipulation/unsqueeze_cn.html#unsqueeze)
+ 答复:请参考 API [paddle.unsqueeze](https://www.paddlepaddle.org.cn/documentation/docs/zh/api/paddle/unsqueeze_cn.html#unsqueeze)

----------

Expand All @@ -33,7 +33,7 @@ paddle 中推荐使用 `DataLoader`,这是一种灵活的异步加载方式。

+ 答复:如果是在进入 paddle 计算流程之前,数据仍然是 numpy.array 的形式,使用 numpy 接口`numpy.expand_dims`为图片数据增加维度后,再通过`numpy.reshape`进行操作即可,具体使用方法可查阅 numpy 的官方文档。

如果是希望在模型训练或预测流程中完成通道的操作,可以使用 paddle 对应的 API [paddle.unsqueeze](https://www.paddlepaddle.org.cn/documentation/docs/zh/api/paddle/tensor/manipulation/unsqueeze_cn.html#unsqueeze)[paddle.reshape](https://www.paddlepaddle.org.cn/documentation/docs/zh/api/paddle/tensor/manipulation/reshape_cn.html#reshape)
如果是希望在模型训练或预测流程中完成通道的操作,可以使用 paddle 对应的 API [paddle.unsqueeze](https://www.paddlepaddle.org.cn/documentation/docs/zh/api/paddle/unsqueeze_cn.html#unsqueeze)[paddle.reshape](https://www.paddlepaddle.org.cn/documentation/docs/zh/api/paddle/reshape_cn.html#reshape)

----------

Expand All @@ -58,4 +58,4 @@ z = paddle.ones([2, 2], 'float32')
##### 问题:如何初始化一个随机数的 Tensor?

+ 答复:使用`paddle.rand``paddle.randn` 等 API。具体请参考:
[paddle.rand](https://www.paddlepaddle.org.cn/documentation/docs/zh/api/paddle/tensor/random/rand_cn.html#rand)[paddle.randn](https://www.paddlepaddle.org.cn/documentation/docs/zh/api/paddle/tensor/random/randn_cn.html#randn)
[paddle.rand](https://www.paddlepaddle.org.cn/documentation/docs/zh/api/paddle/rand_cn.html#rand)[paddle.randn](https://www.paddlepaddle.org.cn/documentation/docs/zh/api/paddle/randn_cn.html#randn)
2 changes: 1 addition & 1 deletion docs/faq/distributed_cn.md
Original file line number Diff line number Diff line change
Expand Up @@ -72,7 +72,7 @@
##### 问题:飞桨 2.0 分布式配置项统一到 DistributedStrategy 后有哪些具体变化?

+ 答复:
2.0 版本之后,建议根据 [DistributedStrategy 文档](https://www.paddlepaddle.org.cn/documentation/docs/zh/api/paddle/distributed/fleet/DistributedStrategy_cn.html) 和 [BuildStrategy 文档](https://www.paddlepaddle.org.cn/documentation/docs/zh/api/paddle/fluid/compiler/BuildStrategy_cn.html#buildstrategy) 修改配置选项。
2.0 版本之后,建议根据 [DistributedStrategy 文档](https://www.paddlepaddle.org.cn/documentation/docs/zh/api/paddle/distributed/fleet/DistributedStrategy_cn.html) 和 [BuildStrategy 文档](https://www.paddlepaddle.org.cn/documentation/docs/zh/api/paddle/static/BuildStrategy_cn.html#buildstrategy) 修改配置选项。

2.0 版本将 3 个环境变量配置变为`DistributedStrategy`配置项,3 个环境变量将不生效,包括

Expand Down
4 changes: 2 additions & 2 deletions docs/faq/params_cn.md
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@

+ 答复:

1. 在动态图中,使用`paddle.save` API, 并将最后一层的`layer.state_dict()` 传入至 save 方法的 obj 参数即可, 然后使用`paddle.load` 方法加载对应层的参数值。详细可参考 API 文档[save](https://www.paddlepaddle.org.cn/documentation/docs/zh/api/paddle/framework/io/save_cn.html#save)[load](https://www.paddlepaddle.org.cn/documentation/docs/zh/api/paddle/framework/io/load_cn.html#load)
1. 在动态图中,使用`paddle.save` API, 并将最后一层的`layer.state_dict()` 传入至 save 方法的 obj 参数即可, 然后使用`paddle.load` 方法加载对应层的参数值。详细可参考 API 文档[save](https://www.paddlepaddle.org.cn/documentation/docs/zh/api/paddle/save_cn.html#save)[load](https://www.paddlepaddle.org.cn/documentation/docs/zh/api/paddle/load_cn.html#load)
2. 在静态图中,使用`paddle.static.save_vars`保存指定的 vars,然后使用`paddle.static.load_vars`加载对应层的参数值。具体示例请见 API 文档:[load_vars](https://www.paddlepaddle.org.cn/documentation/docs/zh/api/paddle/fluid/io/load_vars_cn.html)[save_vars](https://www.paddlepaddle.org.cn/documentation/docs/zh/api/paddle/fluid/io/save_vars_cn.html)

----------
Expand All @@ -32,7 +32,7 @@

+ 答复:

1. 对于固定 BN:设置 `use_global_stats=True`,使用已加载的全局均值和方差:`global mean/variance`,具体内容可查看官网 API 文档[batch_norm](https://www.paddlepaddle.org.cn/documentation/docs/zh/api/paddle/fluid/layers/batch_norm_cn.html#batch-norm)
1. 对于固定 BN:设置 `use_global_stats=True`,使用已加载的全局均值和方差:`global mean/variance`,具体内容可查看官网 API 文档[batch_norm](https://www.paddlepaddle.org.cn/documentation/docs/zh/api/paddle/nn/functional/batch_norm_cn.html#batch-norm)

2. 对于固定网络层:如: stage1→ stage2 → stage3 ,设置 stage2 的输出,假设为*y*,设置 `y.stop_gradient=True`,那么, stage1→ stage2 整体都固定了,不再更新。

Expand Down
4 changes: 2 additions & 2 deletions docs/faq/save_cn.md
Original file line number Diff line number Diff line change
Expand Up @@ -126,5 +126,5 @@ tensor_bias[0] = 10

更多介绍请参考以下 API 文档:

- [paddle.save](https://www.paddlepaddle.org.cn/documentation/docs/zh/api/paddle/framework/io/save_cn.html)
- [paddle.load](https://www.paddlepaddle.org.cn/documentation/docs/zh/api/paddle/framework/io/load_cn.html)
- [paddle.save](https://www.paddlepaddle.org.cn/documentation/docs/zh/api/paddle/save_cn.html#save)
- [paddle.load](https://www.paddlepaddle.org.cn/documentation/docs/zh/api/paddle/load_cn.html#load)
2 changes: 1 addition & 1 deletion docs/faq/train_cn.md
Original file line number Diff line number Diff line change
Expand Up @@ -61,7 +61,7 @@ torch.gather(input, dim, index, *, sparse_grad=False, out=None)

##### 问题:如何不训练某层的权重?

+ 答复:在`ParamAttr`里设置`learning_rate=0``trainable`设置为`False`。具体请[参考文档](https://www.paddlepaddle.org.cn/documentation/docs/zh/api/paddle/fluid/param_attr/ParamAttr_cn.html)
+ 答复:在`ParamAttr`里设置`learning_rate=0``trainable`设置为`False`。具体请[参考文档](https://www.paddlepaddle.org.cn/documentation/docs/zh/api/paddle/ParamAttr_cn.html#paramattr)

----------

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
但在每个进程上处理不同的数据。因此,数据并行非常适合单卡已经能够放得下完整的模型和参数,但希望通过并行来增大
全局数据(global batch)大小来提升训练的吞吐量。

本节将采用自定义卷积网络和 Paddle 内置的 CIFAR-10 数据集来介绍如何使用 `Fleet API <https://www.paddlepaddle.org.cn/documentation/docs/zh/api/paddle/distributed/Overview_cn.html#fleetapi>`_ (paddle.distributed.fleet) 进行数据并行训练。
本节将采用自定义卷积网络和 Paddle 内置的 CIFAR-10 数据集来介绍如何使用 :ref:`cn_overview_distributed` (paddle.distributed.fleet) 进行数据并行训练。

1.1 版本要求
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Expand Down Expand Up @@ -47,7 +47,7 @@
分布式初始化需要:

1. 设置 is_collective 为 True,表示分布式训练采用 Collective 模式。
2. [可选] 设置分布式策略 `DistributedStrategy <https://www.paddlepaddle.org.cn/documentation/docs/zh/api/paddle/distributed/fleet/DistributedStrategy_cn.html>`_,跳过将使用缺省配置。
2. [可选] 设置分布式策略 :ref:`cn_api_distributed_fleet_DistributedStrategy` ,跳过将使用缺省配置。

.. code-block:: python
Expand Down Expand Up @@ -79,7 +79,7 @@
1.2.5 构建分布式训练使用的数据加载器
"""""""""""""""""""""""""""""""""""""""""""""

由于分布式训练过程中每个进程可能读取不同数据,所以需要对数据集进行合理拆分后再进行加载。这里只需要在构建 `DataLoader <https://www.paddlepaddle.org.cn/documentation/docs/zh/api/paddle/io/DataLoader_cn.html#dataloader>`_ 时, 设置分布式数据采样器 `DistributedBatchSampler <https://www.paddlepaddle.org.cn/documentation/docs/zh/api/paddle/io/DistributedBatchSampler_cn.html#distributedbatchsampler>`_ 即可。
由于分布式训练过程中每个进程可能读取不同数据,所以需要对数据集进行合理拆分后再进行加载。这里只需要在构建 :ref:`cn_api_fluid_io_DataLoader` 时, 设置分布式数据采样器 :ref:`cn_api_io_cn_DistributedBatchSampler` 即可。

.. code-block:: python
Expand Down Expand Up @@ -249,4 +249,4 @@
--ips=192.168.1.2,192.168.1.3 \
train_with_fleet.py
相关启动问题,可参考 `paddle.distributed.launch <https://www.paddlepaddle.org.cn/documentation/docs/zh/api/paddle/distributed/launch_cn.html#launch>`_
相关启动问题,可参考 :ref:`cn_api_distributed_launch`
Original file line number Diff line number Diff line change
Expand Up @@ -270,4 +270,4 @@ InMemoryDataset/QueueDataset 所对应的数据处理脚本参考 examples/wide_
time: [2022-05-18 11:27:27], batch: [4], loss[1]:[0.703863]
time: [2022-05-18 11:27:27], batch: [5], loss[1]:[0.670717]
备注:启动相关问题,请参考\ `launch <https://www.paddlepaddle.org.cn/documentation/docs/zh/api/paddle/distributed/launch_cn.html>`_\
备注:启动相关问题,请参考 :ref:`cn_api_distributed_launch`
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,7 @@
二、动态图操作实践
---------------------------

使用飞桨框架提供的 API:\ ``paddle.amp.auto_cast``\ \ ``paddle.amp.GradScaler``\ 能够实现动态图的自动混合精度训练,即在相关 OP 的计算中,自动选择 FP16 或 FP32 格式计算。开启 AMP 模式后,使用 FP16 与 FP32 进行计算的 OP 列表可以参见\ `AMP 概览 <https://www.paddlepaddle.org.cn/documentation/docs/zh/api/paddle/amp/Overview_cn.html>`_\
使用飞桨框架提供的 API:\ ``paddle.amp.auto_cast``\ \ ``paddle.amp.GradScaler``\ 能够实现动态图的自动混合精度训练,即在相关 OP 的计算中,自动选择 FP16 或 FP32 格式计算。开启 AMP 模式后,使用 FP16 与 FP32 进行计算的 OP 列表可以参见 :ref:`cn_overview_amp`

2.1 具体示例
^^^^^^^^^^^^^^^^^^
Expand Down
2 changes: 1 addition & 1 deletion docs/guides/advanced/layer_and_model_cn.md
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,7 @@ paddle.nn.Layer 是飞桨定义的一个非常重要的类,是飞桨所有神

### 2.1 加载 Mnist 数据集

相信根据前面的内容,你已经知道如何使用 [paddle.Dataset](https://www.paddlepaddle.org.cn/documentation/docs/zh/api/paddle/io/Dataset_cn.html)[paddle.DataLoader](https://www.paddlepaddle.org.cn/documentation/docs/zh/api/paddle/io/DataLoader_cn.html) 处理想要的数据了,如果你还有问题可以参考[数据读取](https://www.paddlepaddle.org.cn/documentation/docs/zh/develop/guides/beginner/data_load_cn.html)文档,这里采用前面讲到的方法使用 Mnist 数据集。
相信根据前面的内容,你已经知道如何使用 [paddle.Dataset](https://www.paddlepaddle.org.cn/documentation/docs/zh/api/paddle/io/Dataset_cn.html)[paddle.DataLoader](https://www.paddlepaddle.org.cn/documentation/docs/zh/api/paddle/io/DataLoader_cn.html) 处理想要的数据了,如果你还有问题可以参考[数据集定义与加载](https://www.paddlepaddle.org.cn/documentation/docs/zh/develop/guides/beginner/data_load_cn.html)文档,这里采用前面讲到的方法使用 Mnist 数据集。

```python
import paddle
Expand Down
2 changes: 1 addition & 1 deletion docs/guides/jit/case_analysis_cn.md
Original file line number Diff line number Diff line change
Expand Up @@ -348,7 +348,7 @@ out = convert_ifelse(paddle.mean(x) > 5.0, true_fn_0, false_fn_0, (x,), (x,), (o

当控制流中,出现了 ``list.append`` 类似语法时,情况会有一点点特殊。

Paddle 框架中的 ``cond_op`` 和 [``while_loop``](https://www.paddlepaddle.org.cn/documentation/docs/zh/api/paddle/fluid/layers/while_loop_cn.html#cn-api-fluid-layers-while-loop) 对输入和返回类型有一个要求:
Paddle 框架中的 ``cond_op`` 和 [``while_loop``](https://www.paddlepaddle.org.cn/documentation/docs/zh/api/paddle/static/nn/while_loop_cn.html#while-loop) 对输入和返回类型有一个要求:
> 输入或者返回类型必须是:LoDTensor 或者 LoDTensorArray <br><br>
> 即:不支持其他非 LoDTensor 类型

Expand Down

0 comments on commit 38fbc14

Please sign in to comment.