code: def after_run(self, run_context, run_values):
      global_step = run_values.results + 1
  
      # Check latest global step to ensure that the targeted last step is
      # reached. global_step read tensor is the value of global step
      # before running the operation. We're not sure whether current session.run
      # incremented the global_step or not. Here we're checking it.
  
      step = run_context.session.run(self._global_step_tensor)
      assert step == global_step
      self._epoch = int(
          (self._global_batch_size * step)
          / self._num_examples_per_epoch
      )
      logging.info(f"{self.__class__.__name__}: Epoch {self.epoch}")
  
imports: import delta.compat
  from bisect import bisect_right
  from absl import logging
label_desc: Use image node_id 6 for calling the EpochHook obj's underlying member method code with example usage: obj.after_run(run_context, run_values) without return types