class_docstr: Manage the double for loop.
docstr: The number of the currently ongoing epoch.
  
  An epoch is defined to cover the moment before calling `before_epoch` until after calling `trigger_epoch`.
  i.e., in the `trigger_epoch` of epoch 3, `self.epoch_num` is 3.
  If you need use `self.epoch_num` in your callback, you'll need to know this.
docstr_tok: ["The","number","of","the","currently","ongoing","epoch",".","An","epoch","is","defined","to","cover","the","moment","before","calling","`","before_epoch","`","until","after","calling","`","trigger_epoch","`",".","i.e.",",","in","the","`","trigger_epoch","`","of","epoch","3",",","`","self.epoch_num","`","is","3",".","If","you","need","use","`","self.epoch_num","`","in","your","callback",",","you","'ll","need","to","know","this","."]
code: def epoch_num(self):
      """
      The number of the currently ongoing epoch.
  
      An epoch is defined to cover the moment before calling `before_epoch` until after calling `trigger_epoch`.
      i.e., in the `trigger_epoch` of epoch 3, `self.epoch_num` is 3.
      If you need use `self.epoch_num` in your callback, you'll need to know this.
      """
      return self._epoch_num
  
imports: import copy
  import time
  import weakref
  import tensorflow
  from ..compat import tfv1
  from ..callbacks import Callback, Callbacks, Monitors, MonitorBase
  from ..callbacks.steps import MaintainStepCounter
  from ..tfutils import get_global_step_value
  from ..tfutils.model_utils import describe_trainable_vars
  from ..tfutils.sesscreate import NewSessionCreator, ReuseSessionCreator
  from ..tfutils.sessinit import JustCurrentSession, SessionInit
  from ..utils import logger
  from ..utils.argtools import call_only_once
  from ..utils.utils import humanize_time_delta
  from .config import DEFAULT_CALLBACKS, DEFAULT_MONITORS, TrainConfig
label_desc: Use image node_id 4 for calling the TrainLoop obj's underlying member method code with example usage: obj.epoch_num() and returns: self