torch.nn.utils.clip_grad_norm_
- torch.nn.utils.clip_grad_norm_(parameters, max_norm, norm_type=2.0, error_if_nonfinite=False, foreach=None)[源代码]
-
对参数迭代器的梯度范数进行裁剪。
范数是通过对所有参数的个别梯度的范数进行计算得出的,这些个别梯度的范数会被视为连接成一个单一向量。梯度会就地进行修改。
- 参数
-
-
parameters (Iterable[Tensor] 或 Tensor) – 一个包含 Tensor 的可迭代对象或单个 Tensor,其梯度将会被归一化
-
max_norm (float) – 指定梯度的最大范数值
-
norm_type (float) – 表示使用的 p-范数的类型。可以设置为
'inf'
来表示无穷范数。 -
error_if_nonfinite (bool) – 如果为 True,当从
parameters
获取的梯度总范数是nan
、inf
或-inf
时会抛出错误。默认值:False(将来会改为 True) -
foreach (bool) - 使用基于 foreach 的更快实现方式。如果设置为
None
,则对于 CUDA 和 CPU 原生张量使用 foreach 实现,并在其他设备类型上静默回退到慢速实现。默认值:None
-
- 返回值
-
参数梯度的总范数(将所有梯度视为一个向量)。
- 返回类型