【发布时间】:2018-10-28 08:48:00
【问题描述】:
我将一个 RNN(具体来说是一个 GRU)训练成一个语言模型,大致如下:
inputs = [<start>, tok1, tok2, tok3, . . .]
outputs = [tok1, tok2, tok3, . . .]
h0 = initial state of all-zeros
gru_outputs, hn = gru(inputs, h0)
cost = loss (gru_outputs, outputs)
基本上在训练期间有一个“指导”输入,我将 target 标记从最后一步输入到当前步骤(教师强制?)。
现在这个 RNN 训练良好,并且收敛。但我不知道如何真正使用它从头开始生成序列。由于 gru 期望一个明确的输入参数,我如何告诉它使用最后一步的输出而不给它输入?
基本上我想要
roll_out = gru(h0, step_number = 10)
无法完全弄清楚如何做到这一点。我是否需要在训练和使用过程中使用不同的 API 并手动推出?
此要点中的完整代码(如果有任何用处):https://gist.github.com/evanthebouncy/b5039dc72d3d9fea66dad3306e479e6b
谢谢!
--埃文
【问题讨论】:
-
所以你正在训练一个语言模型,但是你不知道如何用训练好的模型创建一个文本序列?
-
是的。有什么帮助吗? 1个字符