class_docstr: 与 :meth:`Trainer.on` 函数配合使用，达到控制 callback 函数运行时机的目的。
  
  :param value: Trainer 的 callback 时机；
  :param every: 每触发多少次才真正运行一次；
  :param once: 只在第多少次触发才真正运行一次。即第 ``once`` 次调用时才运行相应的函数，无论之前还是之后均不会运行；
  :param filter_fn: 输入参数的应该为 ``(filter, trainer)``，其中 ``filter`` 对象中包含了 `filter.num_called` 和
      `filter.num_executed` 两个变量分别获取当前被调用了多少次，真正执行了多少次；``trainer`` 对象即为当前正在运行的 Trainer；
code: def __init__(
      self,
      value: str,
      every: Optional[int] = None,
      once: Optional[bool] = None,
      filter_fn: Optional[Callable] = None,
  ):
      self.every = every
      self.once = once
      self.filter_fn = filter_fn
      self.value = value
  
imports: from typing import Optional, Callable, Dict
  from functools import wraps
label_desc: Use image node_id 1 to create a new Event object  with example: obj = Event(value, every, once, filter_fn)