with torch.no_grad() 详解

  • 在使用pytorch时,并不是所有的操作都需要进行计算图的生成,只是想要网络结果的话就不需要后向传播 ,如果你想通过网络输出的结果去进一步优化网络的话 就需要后向传播了。

  • 不使用with torch.no_grad():此时有grad_fn=属性,表示,计算的结果在一计算图当中,可以进行梯度反传等操作。

  • 使用with torch.no_grad():表明当前计算不需要反向传播,使用之后,强制后边的内容不进行计算图的构建

  • 示例如下:

with torch.no_grad() 详解_第1张图片
with torch.no_grad() 详解_第2张图片

  • 此时的outputs没有 属性。
    with torch.no_grad() 详解_第3张图片
    with torch.no_grad() 详解_第4张图片
  • 可以看到,此时有grad_fn=属性,表示,计算的结果在一计算图当中,可以进行梯度反传等操作。但是,两者计算的结果实际上是没有区别的。

你可能感兴趣的:(函数,python,人工智能,深度学习)