From ce4360cd57fc2e5244119c6397e75ad05c62defc Mon Sep 17 00:00:00 2001 From: Eric Kerfoot Date: Wed, 18 Dec 2024 15:44:32 +0000 Subject: [PATCH] Slight fix to how epoch length is guessed Signed-off-by: Eric Kerfoot --- monai/engines/workflow.py | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/monai/engines/workflow.py b/monai/engines/workflow.py index 6734294cb1..0c36da6d3d 100644 --- a/monai/engines/workflow.py +++ b/monai/engines/workflow.py @@ -133,9 +133,12 @@ def __init__( def set_sampler_epoch(engine: Engine) -> None: sampler.set_epoch(engine.state.epoch) - # if the epoch_length isn't given, attempt to get it from the length of the data loader - if epoch_length is None and isinstance(data_loader.dataset, Sized): - epoch_length = len(data_loader.dataset) + # if the epoch_length isn't given, attempt to get it from the length of the data loader + if epoch_length is None and isinstance(data_loader, Sized): + try: + epoch_length = len(data_loader) + except TypeError: # raised when data_loader has an iterable dataset with no length, or is some other type + pass # deliberately leave epoch_length as None # set all sharable data for the workflow based on Ignite engine.state self.state: Any = State(