class_docstr: 为了避免在训练流程中调用 callback 函数中写成类似 `'trainer.callback_manager.on_train_begin'` 的形式，我们选择单独为 ``Trainer``
  抽象一层，然后一些特殊的操作可以在这里进行，例如我们通过 :meth:`on_validate_end` 来通知所有的 ``CheckpointCallback`` 实例在当前的 step 后保存
  模型。
code: def on_after_zero_grad(self, optimizers):
      self.callback_manager.on_after_zero_grad(self, optimizers)
  
imports: from typing import Dict
  from fastNLP.core.callbacks import CallbackManager
  from .state import TrainerState
  from fastNLP.core.utils.utils import _check_valid_parameters_number
label_desc: Use image node_id 22 for calling the TrainerEventTrigger obj's underlying member method code with example usage: obj.on_after_zero_grad(optimizers) without return types