未验证 提交 957d64e9 编写于 作者: Z zhongpu 提交者: GitHub

fix error for dygraph doc, test=develop (#1703)

上级 e7775b51
# 动态图机制-DyGraph # 动态图机制-DyGraph
PaddlePaddle的DyGraph模式是一种动态的图执行机制,可以立即执行结果,无需构建整个图。同时,和以往静态的执行计算图不同,DyGraph模式下您的所有操作可以立即获得执行结果,而不必等待所构建的计算图全部执行完成,这样可以让您更加直观地构建PaddlePaddle下的深度学习任务,以及进行模型的调试,同时还减少了大量用于构建静态计算图的代码,使得您编写、调试网络的过程变得更加便捷。 PaddlePaddle的DyGraph模式是一种动态的图执行机制,可以立即执行结果,无需构建整个图。同时,和以往静态的执行计算图不同,DyGraph模式下您的所有操作可以立即获得执行结果,而不必等待所构建的计算图全部执行完成,这样可以让您更加直观地构建PaddlePaddle下的深度学习任务,以及进行模型的调试,同时还减少了大量用于构建静态计算图的代码,使得您编写、调试网络的过程变得更加便捷。
PaddlePaddle DyGraph是一个更加灵活易用的模式,可提供: PaddlePaddle DyGraph是一个更加灵活易用的模式,可提供:
* 更加灵活便捷的代码组织结构: 使用python的执行控制流程和面向对象的模型设计 * 更加灵活便捷的代码组织结构:使用python的执行控制流程和面向对象的模型设计
* 更加便捷的调试功能:直接使用python的打印方法即时打印所需要的结果,从而检查正在运行的模型结果便于测试更改
* 更加便捷的调试功能: 直接使用python的打印方法即时打印所需要的结果,从而检查正在运行的模型结果便于测试更改
* 和静态执行图通用的模型代码:同样的模型代码可以使用更加便捷的DyGraph调试,执行,同时也支持使用原有的静态图模式执行 * 和静态执行图通用的模型代码:同样的模型代码可以使用更加便捷的DyGraph调试,执行,同时也支持使用原有的静态图模式执行
有关的动态图机制更多的实际模型示例请参考[Paddle/models/dygraph](https://github.com/PaddlePaddle/models/tree/develop/dygraph) 有关的动态图机制更多的实际模型示例请参考[Paddle/models/dygraph](https://github.com/PaddlePaddle/models/tree/develop/dygraph)
...@@ -22,19 +14,17 @@ PaddlePaddle DyGraph是一个更加灵活易用的模式,可提供: ...@@ -22,19 +14,17 @@ PaddlePaddle DyGraph是一个更加灵活易用的模式,可提供:
1. 升级到最新的PaddlePaddle 1.6.0: 1. 升级到最新的PaddlePaddle 1.6.0:
``` ```
pip install -q --upgrade paddlepaddle==1.6.0 pip install -q --upgrade paddlepaddle==1.6.0
``` ```
2. 使用`fluid.dygraph.guard(place=None)` 上下文: 2. 使用`fluid.dygraph.guard(place=None)` 上下文:
```python ```python
import paddle.fluid as fluid import paddle.fluid as fluid
with fluid.dygraph.guard(): with fluid.dygraph.guard():
# write your executable dygraph code here # write your executable dygraph code here
``` ```
现在您就可以在`fluid.dygraph.guard()`上下文环境中使用DyGraph的模式运行网络了,DyGraph将改变以往PaddlePaddle的执行方式: 现在他们将会立即执行,并且将计算结果返回给Python。 现在您就可以在`fluid.dygraph.guard()`上下文环境中使用DyGraph的模式运行网络了,DyGraph将改变以往PaddlePaddle的执行方式: 现在他们将会立即执行,并且将计算结果返回给Python。
...@@ -161,7 +151,7 @@ if __name__ == '__main__': ...@@ -161,7 +151,7 @@ if __name__ == '__main__':
每个 ``Variable`` 都有一个 ``stop_gradient`` 属性,可以用于细粒度地在反向梯度计算时排除部分子图,以提高效率。 每个 ``Variable`` 都有一个 ``stop_gradient`` 属性,可以用于细粒度地在反向梯度计算时排除部分子图,以提高效率。
如果OP只有一个输入需要梯度,那么该OP的输出也需要梯度。 如果OP只有一个输入需要梯度,那么该OP的输出也需要梯度。
相反,只有当OP的所有输入都不需要梯度时,该OP的输出也不需要梯度。 相反,只有当OP的所有输入都不需要梯度时,该OP的输出也不需要梯度。
在所有的 ``Variable`` 都不需要梯度的子图中,反向计算就不会进行计算了。 在所有的 ``Variable`` 都不需要梯度的子图中,反向计算就不会进行计算了。
...@@ -218,7 +208,6 @@ with fluid.dygraph.guard(): ...@@ -218,7 +208,6 @@ with fluid.dygraph.guard():
有关手写数字识别的相关理论知识请参考[PaddleBook](https://github.com/PaddlePaddle/book/tree/develop/02.recognize_digits)中的内容,我们在这里默认您已经了解了该模型所需的深度学习理论知识。 有关手写数字识别的相关理论知识请参考[PaddleBook](https://github.com/PaddlePaddle/book/tree/develop/02.recognize_digits)中的内容,我们在这里默认您已经了解了该模型所需的深度学习理论知识。
1. 准备数据,我们使用`paddle.dataset.mnist`作为训练所需要的数据集: 1. 准备数据,我们使用`paddle.dataset.mnist`作为训练所需要的数据集:
```python ```python
...@@ -820,7 +809,6 @@ checkpoint loaded ...@@ -820,7 +809,6 @@ checkpoint loaded
Inference result of image/infer_3.png is: 3 Inference result of image/infer_3.png is: 3
``` ```
## 编写兼容的模型 ## 编写兼容的模型
以上一步中手写数字识别的例子为例,动态图的模型代码可以直接用于静态图中作为模型代码,执行时,直接使用PaddlePaddle静态图执行方式即可,这里以静态图中的`executor`为例, 模型代码可以直接使用之前的模型代码,执行时使用`Executor`执行即可 以上一步中手写数字识别的例子为例,动态图的模型代码可以直接用于静态图中作为模型代码,执行时,直接使用PaddlePaddle静态图执行方式即可,这里以静态图中的`executor`为例, 模型代码可以直接使用之前的模型代码,执行时使用`Executor`执行即可
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册