with torch.no_grad():
- 停止对从跟踪历史中 的 .requires_grad=True 的张量自动求导。 参考这句话的网址
- 举个例子:
-
import torch a = torch.randn(5,4,requires_grad=True) b = a*3 with torch.no_grad(): c = a*5 print(a.requires_grad) print(b.requires_grad) print(c.requires_grad) # 输出结果: #True #True #False运行结果怎么来的:
1.首先,a是随机生成了一个多维张量,并且设置了requires_grad属性为True,所以a.requires_grad的输出结果为TRUE是没有问题的。
2.再来看b,b是由a通过运算得出的结果,所以b.requires_grad也是true没有问题。
3.最后看c,c是在with torch.no_grad()的包裹中运算得出,它停止了跟踪,所以c.requires_grad为False



