【发布时间】:2019-03-16 23:10:52
【问题描述】:
在机器翻译数据集中,我已经成功地在 Lua 中预训练和训练了我的模型。现在我开始预测我的模型。
但是我在函数 encoder_clones:forward(encoder_input) 的 Lua 文件中得到错误 错误:尝试调用全局“转发”(零值)
这是那个特定的功能:
function fwd_prop_enc(source, source_l, batch_l, train)
local rnn_state_enc = reset_state(init_fwd_enc, batch_l, 0)
--print(rnn_state_enc)
local context = context_proto[{{1, batch_l}, {1, source_l}}]
for t = 1, source_l do
if train then
encoder_clones[t]:training()
else
encoder_clones[t]:evaluate()
end
local encoder_input = {source[t], unpack(rnn_state_enc[t-1])}
local out = encoder_clones:forward(encoder_input)
print("yes")
rnn_state_enc[t] = out
context[{{},t}]:copy(out[#out]) -- copy final layer for t'th timestep (for entire batch)
end
return rnn_state_enc, context
end
在main函数中是这样调用的
local rnn_state_enc, context = fwd_prop_enc(source, source_l, 1, false) -- train=false
【问题讨论】: