Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/OpenNMT/OpenNMT.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGuillaume Klein <guillaume.klein@systrangroup.com>2017-03-29 17:22:37 +0300
committerGuillaume Klein <guillaume.klein@systrangroup.com>2017-03-29 17:24:56 +0300
commitbdf93832dcb291b25c46327d829f063db164c0fb (patch)
tree5baa8718720543567e53c9c005450be6b6fc161d
parenta29d5c3b98019b8899db303cb5e797fbfa8f7b88 (diff)
Improve compatibility with older Torch versions missing the `fmod` implementationv0.5.2
-rw-r--r--CHANGELOG.md9
-rw-r--r--onmt/translate/BeamSearcher.lua9
2 files changed, 16 insertions, 2 deletions
diff --git a/CHANGELOG.md b/CHANGELOG.md
index cee8ea87..51962a25 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,8 +1,15 @@
-## [Unreleased]
+## [v0.5.2](https://github.com/OpenNMT/OpenNMT/releases/tag/v0.5.2) (2017-03-29)
+
+### Fixes and improvements
+
+* Improve compatibility with older Torch versions missing the `fmod` implementation
+
+## [v0.5.1](https://github.com/OpenNMT/OpenNMT/releases/tag/v0.5.1) (2017-03-28)
### Fixes and improvements
* Fix translation with FP16 precision
+* Fix regression that make `tds` mandatory for translation
## [v0.5.0](https://github.com/OpenNMT/OpenNMT/releases/tag/v0.5.0) (2017-03-06)
diff --git a/onmt/translate/BeamSearcher.lua b/onmt/translate/BeamSearcher.lua
index af911ed7..d3b389a8 100644
--- a/onmt/translate/BeamSearcher.lua
+++ b/onmt/translate/BeamSearcher.lua
@@ -100,7 +100,14 @@ function BeamSearcher:_findKBest(beams, scores)
local consideredScores, consideredIds = topk(expandedScores, considered, 2, true, true)
consideredIds:add(-1)
local consideredBackPointer = (consideredIds:clone():div(vocabSize)):add(1)
- local consideredToken = consideredIds:fmod(vocabSize):add(1):view(-1)
+ local consideredToken = consideredIds:view(-1)
+ if consideredToken.fmod then
+ consideredToken = consideredToken:fmod(vocabSize):add(1)
+ else
+ for i = 1, consideredToken:size(1) do
+ consideredToken[i] = math.fmod(consideredToken[i], vocabSize) + 1
+ end
+ end
local newBeam = beams[t]:_nextBeam(consideredToken, consideredScores,
consideredBackPointer, self.beamSize)