LSTM训练比特而不是角色Lua Torch

时间:2018-06-18 19:22:12

标签: lua lstm torch

在研究LSTM和RNN时,我当然会阅读非常受欢迎的Unreasonable Effectiveness of LSTMs。与该帖子中使用的库类似的库是我正在使用的torch-rnn。我正在尝试在文件的各个位上训练LSTM并输出下一位为1的概率,而不是该库中LanguageModel运行的字符。我已经搜索了该库中的LanguageModel和其他文件以及Torch文档,并且在我的搜索中没有用。所以; 我正在尝试使用torch-rnn(或类似)库将LSTM的输入更改为单个位而不是完整字符,我不知道如何完成此操作。

这似乎是来自该特定库的相关代码片段,但我无法找到有关如何修复的相关文档,并且本身就是在学习Torch。

local _, next_char = nil, nil
for t = first_t, T do
  if sample == 0 then
    _, next_char = scores:max(3)
    next_char = next_char[{{}, {}, 1}]
  else
    local probs = torch.div(scores, temperature):double():exp():squeeze()
    probs:div(torch.sum(probs))
    next_char = torch.multinomial(probs, 1):view(1, 1)
  end
  sampled[{{}, {t, t}}]:copy(next_char)
  scores = self:forward(next_char)
end

我已经使用该给定的库作为参考点,但也考虑了一般的火炬模块以实现我的目标。答案不必使用任何特定的库或工具,只是建议如何完成LSTM的逐位训练。

0 个答案:

没有答案