本文主要是介绍关于with torch.no_grad:的一些小问题,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
with torch.no_grad:是截断梯度记录的,新生成的数据的都不记录梯度,但是今天产生了一点小疑惑,如果存在多层函数嵌入,是不是函数内所有的数据都不记录梯度,验证了一下,确实是的。
import torch
x = torch.randn(10, 5, requires_grad = True)
y = torch.randn(10, 5, requires_grad = True)
z = torch.randn(10, 5, requires_grad = True)
def add(x,y,z):w = x + y + zprint(w.requires_grad)print(w.grad_fn)
def add2(x,y,z):add(x,y,z)
with torch.no_grad():add2(x,y,z)add2(x,y,z)
“”“
输出:
False
None
True
<AddBackward0 object at 0x00000250371BED68>
”“”
这篇关于关于with torch.no_grad:的一些小问题的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!