class_docstr: 在每次 :func:`optimizer.step` 之前对参数的梯度进行截断。
  
  :param clip_value: 将梯度限制到 [-clip_value, clip_value] 之间。``clip_value`` 应该为正数；
  :param clip_type: 应为 ``'norm'``, ``'value'`` 中的一个:
  
      1. 为 ``'norm'`` 时, 将梯度的范数限制在 [-clip_value, clip_value] 之间；
      2. 为 ``'value'`` 时，, 将梯度限制在 [-clip_value, clip_value] 之间，小于 ``-clip_value``
         的梯度被赋值为 ``-clip_value``，大于 ``clip_value`` 的梯度被赋值为 ``clip_value``；
  
  :param parameters: 参数，一般通过 :func:`model.parameters` 获得。
      如果为 ``None`` 则默认对 Trainer 的 optimizers 中所有参数进行梯度裁剪。
code: def on_before_optimizers_step(self, trainer, optimizers):
      for optimizer in trainer.driver.optimizers:
          trainer.driver.grad_scaler.unscale_(optimizer)
      self.clip_fun(self.parameters, self.clip_value)
  
file_path: fastNLP/fastNLP/core/callbacks/torch_callbacks/torch_grad_clip_callback.py
imports: from typing import Union, List
  from ..callback import Callback
  from ...drivers.torch_driver.fairscale import FairScaleDriver
  from ...drivers.torch_driver import TorchDriver
  from fastNLP.envs.imports import _NEED_IMPORT_FAIRSCALE
label_desc: Use image node_id 3 for calling the TorchGradClipCallback obj's underlying member method code with example usage: obj.on_before_optimizers_step(trainer, optimizers) without return types