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)[source][source]¶
限制一个可迭代参数的梯度范数。
规范是通过所有参数的各个梯度的范数计算得出的,就好像各个梯度的范数被连接成一个单个向量一样。梯度将就地修改。
此函数等价于先执行
torch.nn.utils.get_total_norm()
,然后执行torch.nn.utils.clip_grads_with_norm_()
,最后返回get_total_norm
的total_norm
。- 参数:
参数(可迭代[Tensor]或 Tensor)- 一个 Tensor 的可迭代对象或单个 Tensor,其梯度将被归一化
max_norm(浮点数)- 梯度的最大范数
norm_type (浮点数) – 使用 p-norm 的类型。可以是
'inf'
表示无穷范数。error_if_nonfinite (布尔值) – 如果为 True,当
parameters
的梯度总范数为nan
、inf
或-inf
时,将抛出错误。默认:False(未来将切换到 True)foreach (布尔值) – 使用基于 foreach 的更快实现。如果为
None
,则使用 CUDA 和 CPU 原生张量的 foreach 实现并静默回退到慢速实现。默认:None
- 返回值:
参数梯度的总范数(视为单个向量)。
- 返回类型: