翻译自官方说明文档
总的来说就是不再进行梯度的计算,在测试中很有效
说明如下:
禁用梯度计算的上下文管理器。
当您确定不会调用Tensor.backward()时,禁用梯度计算对于推断很有用。 它将减少原本需要require_grad = True的计算的内存消耗。
在这种模式下,即使输入具有require_grad = True,每次计算的结果也将具有require_grad = False。
使用enable_grad上下文管理器时,此模式无效。
该上下文管理器是线程本地的; 它不会影响其他线程中的计算。
还用作装饰器。 (确保实例化带括号。)
>>> x = torch.tensor([1], requires_grad=True) >>> with torch.no_grad(): ... y = x * 2 >>> y.requires_grad False >>> @torch.no_grad() ... def doubler(x): ... return x * 2 >>> z = doubler(x) >>> z.requires_grad False