tensorflow/models · error · ValueError

`epoch_end` can only be called inside an epoch.

Error message

`epoch_end` can only be called inside an epoch.

What it means

Error "`epoch_end` can only be called inside an epoch." thrown in tensorflow/models.

Source

Thrown at orbit/utils/epoch_helper.py:49

    self._global_step = global_step
    self._current_epoch = None
    self._epoch_start_step = None
    self._in_epoch = False

  def epoch_begin(self):
    """Returns whether a new epoch should begin."""
    if self._in_epoch:
      return False
    current_step = self._global_step.numpy()
    self._epoch_start_step = current_step
    self._current_epoch = current_step // self._epoch_steps
    self._in_epoch = True
    return True

  def epoch_end(self):
    """Returns whether the current epoch should end."""
    if not self._in_epoch:
      raise ValueError("`epoch_end` can only be called inside an epoch.")
    current_step = self._global_step.numpy()
    epoch = current_step // self._epoch_steps

    if epoch > self._current_epoch:
      self._in_epoch = False
      return True
    return False

  @property
  def batch_index(self):
    """Index of the next batch within the current epoch."""
    return self._global_step.numpy() - self._epoch_start_step

  @property
  def current_epoch(self):
    return self._current_epoch

View on GitHub (pinned to e006f5f0d5)

Solutions

  1. Call epoch_end only between epoch_begin and the end of the epoch.
  2. Pair every epoch_end with a preceding epoch_begin.

When it happens

Trigger: Thrown at orbit/utils/epoch_helper.py:49 when the library encounters an invalid state.

Common situations: See trigger scenarios.


AI-assisted analysis of tensorflow/models@e006f5f0d5 (2026-08-24). Data as JSON: /api/errors/b442af5426f9a541. Report an issue: GitHub.