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)[源代码][源代码]¶
裁剪可迭代参数的梯度范数。
范数是根据所有参数的单独梯度的范数计算的,就像将单独梯度的范数连接成一个向量一样。梯度会在原地修改。
此函数等效于先调用
torch.nn.utils.get_total_norm()
,然后使用get_total_norm
返回的total_norm
调用torch.nn.utils.clip_grads_with_norm_()
。- 参数
parameters (Iterable[Tensor] or 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 原生 Tensor 使用 foreach 实现,对其他设备类型静默回退到慢速实现。默认值:None
- 返回值
参数梯度的总范数(视为一个向量)。
- 返回值类型