From 8dec5b59767eded07e23a795b6e03581c1c7652a Mon Sep 17 00:00:00 2001 From: Marcel Date: Mon, 13 Apr 2026 20:58:32 +0200 Subject: [PATCH] fix(training): disable DataLoader workers in subprocess training DataLoader worker subprocesses crash inside Docker due to multiprocessing fork restrictions. Pass --workers 0 to both ketos train and ketos segtrain so data loading runs in the main process. Co-Authored-By: Claude Sonnet 4.6 --- ocr-service/main.py | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/ocr-service/main.py b/ocr-service/main.py index 955f7fbd..8e4d2288 100644 --- a/ocr-service/main.py +++ b/ocr-service/main.py @@ -366,7 +366,8 @@ async def train_model( os.makedirs(checkpoint_dir, exist_ok=True) cmd = [ - "ketos", "train", + "ketos", "--workers", "0", + "train", "-f", "path", "-o", checkpoint_dir, "-q", "fixed", @@ -456,7 +457,8 @@ async def segtrain_model( os.makedirs(checkpoint_dir, exist_ok=True) cmd = [ - "ketos", "segtrain", + "ketos", "--workers", "0", + "segtrain", "-o", checkpoint_dir, "-q", "fixed", "-N", "50",