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()
后跟torch.nn.utils.clip_grads_with_norm_()
,并使用get_total_norm
返回的total_norm
。- 参数
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
- 返回
参数梯度的总范数(视为单个向量)。
- 返回类型