我是tensorflow的初学者。我想用this tutorial来学习tensorflow。
读完本教程后,我想在训练模型(使用TrainingHelper)中使用我的数据(韩国标题用于标记化)来运行这段代码,预测结果似乎是可以的。但是在推理模型中(使用GreedyEmbeddingHelper),预测结果非常差(即使使用训练数据)。这看起来像是第一纪元的训练模型预测。TrainingHelper和GreedyEmbeddingHelper有什么区别吗?
我认为教程和我的代码之间的区别就是超参数。
发布于 2017-06-24 06:27:06
TrainingHelper用于训练时,当解码器RNN的(其中一个)输入是前一个时间步长的基本事实时。由于基本事实在推理时不可用,因此您可以转而输入上一时间步的解码器输出。
例如,考虑目标句子“我喜欢披萨”。在训练时,解码时,解码RNN将收到以下输入:
喜欢上一个时间步中的基本事实,例如嵌入单词“”(使用上一个时间步中的目标embedding).
在推断时,解码RNN仍将接收2和3。但是,它将采用前一时间步的解码器输出(等于目标词汇长度的一次性编码,例如,解码器在前一时间步猜测的单词),通过目标嵌入运行它,并将其用作输入。
发布于 2017-08-05 12:43:22
这个Tensorflow summit talk中的第28分钟为助手类提供了一些颜色。正如在布莱恩的回答中提到的- GreedyEmbeddingHelper是用于预测时间,当地面实况不能作为输入时。但是,如果您想在训练时使用更细微的辅助工具,也可以查看ScheduledEmbeddingTrainingHelper
https://stackoverflow.com/questions/44690275
复制相似问题