class_docstr: 该类用于我们 fastNLP 自己内部为了训练流程所记录的一些状态，当然是要暴露给用户给用户使用的；
  我们保存的 state 大部分上是 trainer 断点重训 需要重新加载的；
  专属于 `Trainer` 的状态记载的类；
  
  :param n_epochs: 训练过程中总共的 epoch 的数量；
  :param cur_epoch_idx: 当前正在运行第几个 epoch；
  :param global_forward_batches: 当前模型总共 forward 了多少个 step；
  :param batch_idx_in_epoch: 训练中在当前 epoch 的第几个 step；
  :param num_batches_per_epoch: 每一个 epoch 会 forward 多少个 step；
  :param n_batches: 完整训练过程会 forward 的 step 数量，注意 ``n_batches = num_batches_per_epoch * n_epochs`` ；
docstr: :return: 用于断点重训来保存的状态字典；
code: def state_dict(self) -> Dict:
      r"""
      :return: 用于断点重训来保存的状态字典；
      """
      return {
          "cur_epoch_idx": self.cur_epoch_idx,
          "global_forward_batches": self.global_forward_batches,
          "batch_idx_in_epoch": self.batch_idx_in_epoch,
      }
  
file_path: fastNLP/fastNLP/core/controllers/utils/state.py
imports: from dataclasses import dataclass
  from typing import Optional, Dict
label_desc: Use image node_id 1 for calling the TrainerState obj's underlying member method code with example usage: obj.state_dict() and returns: dict