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] or 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
- 返回值
参数梯度的总范数(视为单个向量)。
- 返回类型