torch.no_grad

2022-09-02 22:06:13 浏览数 (2)

目录

class torch.no_grad[source]


class torch.no_grad[source]

不能进行梯度计算的上下文管理器。当你确定你不调用Tensor.backward()时,不能计算梯度对测试来讲非常有用。对计算它将减少内存消耗,否则requires_grad=True。在这个模式下,每个计算结果都需要使得requires_grad=False,即使当输入为requires_grad=True。当使用enable_grad上下文管理器时这个模式不起作用。这个上下文管理器是线程本地的,对其他线程的计算不起作用。同样函数作为一个装饰器(确保用括号实例化)。

例:

代码语言:javascript复制
>>> 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

0 人点赞