Skip to content

Commit 21f4a88

Browse files
committed
hitting max_iters is not epoch completion
1 parent 81d002d commit 21f4a88

File tree

1 file changed

+11
-9
lines changed

1 file changed

+11
-9
lines changed

ignite/engine/engine.py

Lines changed: 11 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1064,17 +1064,19 @@ def _internal_run_as_gen(self) -> Generator:
10641064
self.state.times[Events.EPOCH_COMPLETED.name] = epoch_time_taken
10651065

10661066
handlers_start_time = time.time()
1067-
self._fire_event(Events.EPOCH_COMPLETED)
1068-
epoch_time_taken += time.time() - handlers_start_time
1069-
# update time wrt handlers
1070-
self.state.times[Events.EPOCH_COMPLETED.name] = epoch_time_taken
1067+
if self.state.epoch_length is not None and self.state.iteration % self.state.epoch_length == 0:
1068+
# max_iters can cause training to complete without an epoch ending
1069+
self._fire_event(Events.EPOCH_COMPLETED)
1070+
epoch_time_taken += time.time() - handlers_start_time
1071+
# update time wrt handlers
1072+
self.state.times[Events.EPOCH_COMPLETED.name] = epoch_time_taken
1073+
1074+
hours, mins, secs = _to_hours_mins_secs(epoch_time_taken)
1075+
self.logger.info(
1076+
f"Epoch[{self.state.epoch}] Complete. Time taken: {hours:02d}:{mins:02d}:{secs:06.3f}"
1077+
)
10711078
yield from self._maybe_terminate_or_interrupt()
10721079

1073-
hours, mins, secs = _to_hours_mins_secs(epoch_time_taken)
1074-
self.logger.info(
1075-
f"Epoch[{self.state.epoch}] Complete. Time taken: {hours:02d}:{mins:02d}:{secs:06.3f}"
1076-
)
1077-
10781080
except _EngineTerminateException:
10791081
self._fire_event(Events.TERMINATE)
10801082

0 commit comments

Comments
 (0)