pyannote / pyannote-metrics

A toolkit for reproducible evaluation, diagnostic, and error analysis of speaker diarization systems
http://pyannote.github.io/pyannote-metrics
MIT License
183 stars 30 forks source link

AssertionError: daemonic processes are not allowed to have children #34

Closed suzinia closed 4 years ago

suzinia commented 4 years ago

Hello,

I was trying to reproduce the speaker change detection results by following the change detection tutorial.

I am using a no-gpu Windows machine, and I reduced the number of training epochs to 10 just see if the code runs on my machine.
Other than that, I kept the same input parameters as described in the tutorial.

The training phase runs fine, but the following error message was encountered during the validation phase:

Process SpawnPoolWorker-22: Traceback (most recent call last): File "C:\Users\xx\AppData\Local\Continuum\anaconda3\envs\proj\lib\multiprocessing\process.py", line 297, in _bootstrap self.run() File "C:\Users\xx\AppData\Local\Continuum\anaconda3\envs\proj\lib\multiprocessing\process.py", line 99, in run self._target(*self._args, **self._kwargs) File "C:\Users\xx\AppData\Local\Continuum\anaconda3\envs\proj\lib\multiprocessing\pool.py", line 110, in worker task = get() File "C:\Users\xx\AppData\Local\Continuum\anaconda3\envs\proj\lib\multiprocessing\queues.py", line 354, in get return _ForkingPickler.loads(res) File "C:\Users\xx\AppData\Local\Continuum\anaconda3\envs\proj\lib\site-packages\pyannote\audio\applications\changedetection.py", line 163, in from pyannote.metrics.diarization import DiarizationPurityCoverageFMeasure File "C:\Users\xx\AppData\Local\Continuum\anaconda3\envs\proj\lib\site-packages\pyannote\metrics__init__.py", line 38, in manager = Manager() File "C:\Users\xx\AppData\Local\Continuum\anaconda3\envs\proj\lib\multiprocessing\context.py", line 56, in Manager m.start() File "C:\Users\xx\AppData\Local\Continuum\anaconda3\envs\proj\lib\multiprocessing\managers.py", line 543, in start self._process.start() File "C:\Users\xx\AppData\Local\Continuum\anaconda3\envs\proj\lib\multiprocessing\process.py", line 110, in start 'daemonic processes are not allowed to have children' AssertionError: daemonic processes are not allowed to have children

Any intuition will be appreciated.

Thank you! Soo.

hbredin commented 4 years ago

pyannote.metrics does not support Windows.

That being said, you might want to try to update those lines to use parallel=False, that might solve your issue.

https://github.com/pyannote/pyannote-audio/blob/1d88c5816e7a176d53faaf12d5edbc24f0ee562f/pyannote/audio/applications/change_detection.py#L215-L218

hbredin commented 4 years ago

Closing stalled issues. Please reopen if needed.