0

train.py 第 246 行,我们有

# update the learning rate
optim.updateLearningRate(valid_loss, epoch)

但是,在第 37 行onmt/Optim.py的内部函数updateLearningRate()中,我们有:

def updateLearningRate(self, ppl, epoch):
...
    self.last_ppl = ppl

为什么用forvalid_loss代替?pplupdateLearningRate()

不是valid_lossppl不同的措施吗?

有人可以在这里帮助我吗,谢谢!

4

1 回答 1

0

@bmccann 在这里提供了一个答案,我发现这很有帮助。

任何一个都应该工作,因为 ppl 只是一个指数损失:https ://github.com/OpenNMT/OpenNMT-py/blob/6b4cb9d60eb662a736b09c69457375939cff5dc6/train.py#L241 。

于 2017-04-05T14:06:35.610 回答