OSError: [Errno 38] Function not implemented
eggplant95 opened this issue · 2 comments
Hi!
I met this error while running lm-mmi decoding. If I set nj=188
,10 jobs won't have this issue and have a common decoing result. But if I set nj=50
, all of my jobs is crashed.
number of phones 218
Found parameter lm_scores with shape torch.Size([47960])
Found parameter lo.1.weight with shape torch.Size([219, 512])
Found parameter lo.1.bias with shape torch.Size([219])
Using MMI scorer type: frame
MMI Scorer Module: <class 'espnet.nets.scorers.mmi_rnnt_scorer.MMIRNNTScorer'>
Traceback (most recent call last):
File "/mypath/work/k2/E2E-ASR-Framework/egs/aishell1/../..//bin/asr_recog.py", line 456, in
main(sys.argv[1:])
File "/mypath/work/k2/E2E-ASR-Framework/egs/aishell1/../..//bin/asr_recog.py", line 433, in main
recog(args)
File "/mypath/work/k2/E2E-ASR-Framework/egs/aishell1/espnet/asr/pytorch_backend/asr.py", line 1197, in recog
word_ngram_scorer = word_ngram_scorer(
File "/mypath/work/k2/E2E-ASR-Framework/egs/aishell1/espnet/nets/scorers/word_ngram.py", line 179, in init
self.WordNgram = WordNgram(lang, device)
File "/mypath/work/k2/E2E-ASR-Framework/egs/aishell1/espnet/nets/scorers/word_ngram.py", line 51, in init
self.load_G()
File "/mypath/work/k2/E2E-ASR-Framework/egs/aishell1/espnet/nets/scorers/word_ngram.py", line 66, in load_G
fcntl.flock(f, fcntl.LOCK_EX) # lock
OSError: [Errno 38] Function not implemented
Any idea how to solve this issue?
We didn't see this before. The adoption of fcntl
is to avoid reading conflicts when nj
is very large. If you only run 10 decoding processes, it might be safe to remove all fcntl
operations in word_ngram.py
.
regards.
We didn't see this before. The adoption of
fcntl
is to avoid reading conflicts whennj
is very large. If you only run 10 decoding processes, it might be safe to remove allfcntl
operations inword_ngram.py
.regards.
I have solved it by commenting the relevant lines, thanks for your reply :)