评价此页

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] 或 Tensor) – 将被归一化梯度的张量可迭代对象或单个张量

  • max_norm (float) – 梯度的最大范数

  • norm_type (float, 可选) – 所用 p-范数的类型。可以是 'inf' 表示无穷范数。默认值:2.0

  • error_if_nonfinite (bool, optional) – 如果为 True,当 parameters 的梯度总范数是 naninf-inf 时,会抛出错误。默认值:False

  • foreach (bool, optional) – 使用更快的基于 foreach 的实现。如果为 None,则对 CUDA 和 CPU 原生张量使用 foreach 实现,并对其他设备类型静默回退到慢速实现。默认值:None

返回

参数梯度的总范数(被视为单个向量)。

返回类型

张量