JSHNSL commited on
Commit
49e5c37
·
verified ·
1 Parent(s): 7edaf7e

Upload hpo_train_shim.py with huggingface_hub

Browse files
Files changed (1) hide show
  1. hpo_train_shim.py +6 -4
hpo_train_shim.py CHANGED
@@ -45,12 +45,14 @@ from lerobot.datasets import EpisodeAwareSampler as _RealSampler
45
  # -> random segfaults mid-training. This is NOT a resource problem; more RAM or
46
  # a bigger GPU does not help.
47
  #
48
- # Starting workers with `forkserver` (or `spawn`) gives each worker a clean
49
- # process instead of a fork of the threaded parent, which removes the crash and
50
- # keeps num_workers > 0 usable. Override with HPO_MP_CONTEXT=spawn|fork.
 
 
51
  # ---------------------------------------------------------------------------
52
 
53
- _MP_CONTEXT = os.environ.get("HPO_MP_CONTEXT", "forkserver")
54
 
55
  _RealDataLoader = torch.utils.data.DataLoader
56
 
 
45
  # -> random segfaults mid-training. This is NOT a resource problem; more RAM or
46
  # a bigger GPU does not help.
47
  #
48
+ # `spawn` starts each worker as a fresh interpreter that inherits nothing, so the
49
+ # threaded PyAV state never reaches it. (`forkserver` is NOT enough: its server
50
+ # process is itself forked from the parent, so if PyAV/FFmpeg is already loaded
51
+ # by then the server inherits the broken state and every worker forked from it
52
+ # does too.) Override with HPO_MP_CONTEXT=forkserver|fork.
53
  # ---------------------------------------------------------------------------
54
 
55
+ _MP_CONTEXT = os.environ.get("HPO_MP_CONTEXT", "spawn")
56
 
57
  _RealDataLoader = torch.utils.data.DataLoader
58