code: def start_monitoring(self) -> None:
          
          self._context.init_global_step = self._context.global_step
          self._start_timestamp = get_hr_time()
          self._last_timestamp = self._start_timestamp
docs: The recommended way of using Monitor is opening it with the `with` statement. In this case
          the user doesn't need to call this function explicitly. Otherwise, the function should be
          called before starting the optimiser.
  
          The function evaluates the global_step variable in order to get its initial value. It also
          resets the starting timer since the time set in the __init__ may no longer be accurate.