快捷方式

no_grad

class torch.no_grad(orig_func=None)[來源][來源]

停用梯度計算的上下文管理器。

當您確定不會呼叫 Tensor.backward() 時,停用梯度計算對於推論非常有用。 它將減少本來具有 requires_grad=True 的計算的記憶體消耗。

在此模式下,每個計算的結果都將具有 requires_grad=False,即使輸入具有 requires_grad=True。 有一個例外! 所有工廠函數,或創建新 Tensor 並採用 requires_grad kwarg 的函數,將不會受到此模式的影響。

此上下文管理器是執行緒本地的; 它不會影響其他執行緒中的計算。

也可以用作裝飾器。

注意

No-grad 只是幾種可以在本機啟用或停用梯度的機制之一,請參閱 在本機停用梯度計算 以獲得有關它們如何比較的更多資訊。

注意

這個 API 不適用於前向模式自動微分 (forward-mode AD)。 如果您想為某個運算禁用前向 AD,您可以解包您的雙重張量(dual tensors)。

範例:
>>> 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
>>> @torch.no_grad()
... def tripler(x):
...     return x * 3
>>> z = tripler(x)
>>> z.requires_grad
False
>>> # factory function exception
>>> with torch.no_grad():
...     a = torch.nn.Parameter(torch.rand(10))
>>> a.requires_grad
True

文件

取得 PyTorch 的完整開發者文件

檢視文件

教學

取得適合初學者和進階開發者的深入教學

檢視教學

資源

尋找開發資源並獲得您的問題解答

檢視資源