評價此頁

torch.nn.utils.clip_grad.clip_grad_norm_#

torch.nn.utils.clip_grad.clip_grad_norm_(parameters, max_norm, norm_type=2.0, error_if_nonfinite=False, foreach=None)[原始碼]#

對可迭代引數的梯度範數進行裁剪。

範數是根據所有引數的各個梯度的範數計算的,就好像各個梯度的範數被連線成一個單獨的向量一樣。梯度是原地修改的。

此函式等效於 torch.nn.utils.get_total_norm(),然後是 torch.nn.utils.clip_grads_with_norm_(),並使用 get_total_norm 返回的 total_norm

引數
  • parameters (Iterable[Tensor] or Tensor) – 將要被歸一化梯度的 Tensor 可迭代物件或單個 Tensor

  • max_norm (float) – 梯度的最大範數

  • norm_type (float, optional) – 使用的 p-範數的型別。可以是 'inf',表示無窮範數。預設為 2.0。

  • error_if_nonfinite (bool, optional) – 如果為 True,則當來自 parameters 的梯度的總範數是 naninf-inf 時,將丟擲錯誤。預設為 False。

  • foreach (bool, optional) – 使用更快的基於 foreach 的實現。如果為 None,則對 CUDA 和 CPU 本地張量使用 foreach 實現,並對其他裝置型別靜默回退到慢速實現。預設為 None

返回

引數梯度的總範數(視為一個單獨的向量)。

返回型別

張量