Fix an error on Windows about 32, 64-bit integer #48
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
I run
translate.py
on my Windows machine (with Windows 10 64-bit, Anaconda and PyTorch from this Anaconda package) and run into the following error:This is because in the following code snippet from Beam.py, dec_seq is returned as a numpy
ndarray
withdtype=np.int32
, notnp.int64
.On Windows, even 64 bit Windows and 64 bit Anaconda, numpy uses 32-bit integer as the default integral type, as is illustrated in the following picture and you can see more from here:
As a result, in the following code snippet from Translator.py,
dec_partial_seq
is anIntTensor
instead of aLongTensor
, which leads to the error I mentioned previously.Therefore, I add
dtype=np.int64
argument, the error disappears and it now runs smoothly on Windows.