lyeoni / nlp-tutorial

A list of NLP(Natural Language Processing) tutorials
MIT License
1.37k stars 265 forks source link

neural-machine-translation - nmt ZeroDivisionError: integer division or modulo by zero #10

Open abdoelsayed2016 opened 4 years ago

abdoelsayed2016 commented 4 years ago

Traceback (most recent call last):

File "", line 1, in runfile('D:/nlp-tutorial/neural-machine-translation/nmt/train.py', wdir='D:/nlp-tutorial/neural-machine-translation/nmt')

File "C:\ProgramData\Anaconda3\lib\site-packages\spyder_kernels\customize\spydercustomize.py", line 827, in runfile execfile(filename, namespace)

File "C:\ProgramData\Anaconda3\lib\site-packages\spyder_kernels\customize\spydercustomize.py", line 110, in execfile exec(compile(f.read(), filename, 'exec'), namespace)

File "D:/nlp-tutorial/neural-machine-translation/nmt/train.py", line 254, in trainiters(pairs, encoder, decoder, n_iters)

File "D:/nlp-tutorial/neural-machine-translation/nmt/train.py", line 184, in trainiters train_pairs += [random.choice(train_pairs) for i in range(n_iters%len(train_pairs))]

ZeroDivisionError: integer division or modulo by zero

abdoelsayed2016 commented 4 years ago

I got a solution for that 3 line in your code must change from train_pairs *= n_iters//len(train_pairs) train_pairs += [random.choice(train_pairs) for i in range(n_iters%len(train_pairs))] train_pairs = [tensorsFromPair(pair) for pair in train_pairs] to train_pairs = [tensorsFromPair(random.choice(train_pairs)) for i in range(n_iters)]