Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
PaddlePaddle
FluidDoc
提交
9b9f9be6
F
FluidDoc
项目概览
PaddlePaddle
/
FluidDoc
通知
10
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看板
未验证
提交
9b9f9be6
编写于
9月 02, 2020
作者:
Y
Yang Zhang
提交者:
GitHub
9月 02, 2020
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Revert `no_grad` change and add new implementation (#2513)
上级
d95c24a0
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
57 addition
and
16 deletion
+57
-16
doc/fluid/api_cn/dygraph_cn/no_grad_cn.rst
doc/fluid/api_cn/dygraph_cn/no_grad_cn.rst
+10
-13
doc/fluid/api_cn/paddle_cn/no_grad_cn.rst
doc/fluid/api_cn/paddle_cn/no_grad_cn.rst
+47
-3
未找到文件。
doc/fluid/api_cn/dygraph_cn/no_grad_cn.rst
浏览文件 @
9b9f9be6
...
...
@@ -7,8 +7,6 @@ no_grad
.. py:class:: paddle.fluid.dygraph.no_grad
:api_attr: 命令式编程模式(动态图)
:alias_main: paddle.no_grad
:alias: paddle.no_grad
:old_api: paddle.fluid.dygraph.no_grad
...
...
@@ -21,21 +19,19 @@ no_grad
.. code-block:: python
import numpy as np
import paddle
paddle.disable_static()
import paddle.fluid as fluid
paddle.enable_imperative()
# 用作生成器
data = np.array([[2, 3], [4, 5]]).astype('float32')
l0 =
paddle.nn
.Linear(2, 2) # l0.weight.gradient() is None
l1 =
paddle.nn
.Linear(2, 2)
with
paddle
.no_grad():
l0 =
fluid
.Linear(2, 2) # l0.weight.gradient() is None
l1 =
fluid
.Linear(2, 2)
with
fluid
.no_grad():
# l1.weight.stop_gradient is False
tmp = l1.weight * 2 # tmp.stop_gradient is True
x =
paddle.to_tensor
(data)
x =
fluid.dygraph.to_variable
(data)
y = l0(x) + tmp
o = l1(y)
o.backward()
...
...
@@ -43,12 +39,13 @@ no_grad
print(l0.weight.gradient() is None) # False
# 用作装饰器
@paddle.no_grad()
@fluid.no_grad()
def test_layer():
inp = np.ones([3, 1024], dtype='float32')
t =
paddle.to_tensor
(inp)
linear1 =
paddle.nn
.Linear(1024, 4, bias_attr=False)
linear2 =
paddle.nn
.Linear(4, 4)
t =
fluid.dygraph.base.to_variable
(inp)
linear1 =
fluid
.Linear(1024, 4, bias_attr=False)
linear2 =
fluid
.Linear(4, 4)
ret = linear1(t)
dy_ret = linear2(ret)
...
...
doc/fluid/api_cn/paddle_cn/no_grad_cn.rst
浏览文件 @
9b9f9be6
.. _cn_api_paddle_
cn_name_scope
:
.. _cn_api_paddle_
no_grad
:
n
ame_scope
n
o_grad
-------------------------------
:doc_source: paddle.fluid.dygraph.no_grad
.. py:class:: paddle.fluid.dygraph.no_grad_
:api_attr: 命令式编程模式(动态图)
创建一个上下文来禁用动态图梯度计算。在此模式下,每次计算的结果都将具有stop_gradient=True。
也可以用作一个装饰器(需要创建实例对象作为装饰器)。
**代码示例**
.. code-block:: python
import numpy as np
import paddle
paddle.disable_static()
# 用作生成器
data = np.array([[2, 3], [4, 5]]).astype('float32')
l0 = paddle.nn.Linear(2, 2) # l0.weight.gradient() is None
l1 = paddle.nn.Linear(2, 2)
with paddle.no_grad():
# l1.weight.stop_gradient is False
tmp = l1.weight * 2 # tmp.stop_gradient is True
x = paddle.to_tensor(data)
y = l0(x) + tmp
o = l1(y)
o.backward()
print(tmp.gradient() is None) # True
print(l0.weight.gradient() is None) # False
# 用作装饰器
@paddle.no_grad()
def test_layer():
inp = np.ones([3, 1024], dtype='float32')
t = paddle.to_tensor(inp)
linear1 = paddle.nn.Linear(1024, 4, bias_attr=False)
linear2 = paddle.nn.Linear(4, 4)
ret = linear1(t)
dy_ret = linear2(ret)
test_layer()
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录