From be819455afae2f3dfa456abadc59dcb2afbeb820 Mon Sep 17 00:00:00 2001 From: Mohammed Yasin <32206511+Y-T-G@users.noreply.github.com> Date: Thu, 16 Jan 2025 01:53:38 +0800 Subject: [PATCH] Fix random dataloader freezes (#18697) Co-authored-by: UltralyticsAssistant --- ultralytics/data/build.py | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/ultralytics/data/build.py b/ultralytics/data/build.py index 6493a443..190c6ec9 100644 --- a/ultralytics/data/build.py +++ b/ultralytics/data/build.py @@ -47,6 +47,13 @@ class InfiniteDataLoader(dataloader.DataLoader): for _ in range(len(self)): yield next(self.iterator) + def __del__(self): + """Ensure that workers are terminated.""" + for w in self.iterator._workers: # force terminate + if w.is_alive(): + w.terminate() + self.iterator._shutdown_workers() # cleanup + def reset(self): """ Reset iterator.