我在https://github.com/wojzaremba/lstm/blob/master/main.lua
中使用了lstm语言模型我想在训练结束时保存模型供以后使用。我在培训结束时添加了以下行
torch.save(params.model_file, model)
这似乎成功保存了模型。但是,当我尝试加载该模型并对其进行测试时,我会感到非常困惑。仅仅为了测试,我运行了一个小的训练实例,导致测试集困惑度为134,然后保存模型。然后我加载了保存的模型,并在同一个测试集上应用了完全相同的测试方法(函数run_test),但是我对71675.134感到非常困惑(即使使用随机权重也会比这更加困惑!)。我尝试保存并加载权重,在保存之前将它们转换为float(),或者将它们保存为cudaTensors,并且所有这些都给了我相同的结果。
这是保存整个模型后加载和测试的代码;我只修改了main main.lua中的main方法:
local function main()
g_init_gpu(arg)
print('loading model from file ' .. params.model_file)
model=torch.load(params.model_file)
state_test = {data=transfer_data(ptb.testdataset(params.batch_size))}
reset_state(state_test)
run_test()
end