jctian98/e2e_lfmmi

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 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.

I have solved it by commenting the relevant lines, thanks for your reply :)