我执行了neuralnetwork_tutorial.lua。现在我有了这个模型,我想用一些自己的手写图像进行测试。但是我通过存储权重尝试了很多方法,现在通过使用torch save and load methods存储完整的模型。
然而,现在我尝试使用model:forward(testImageTensor)
预测我自己的手写图像(转换为28X28 DoubleTensor)
...ches/torch/install/share/lua/5.1/dp/model/sequential.lua:30: attempt to index local 'carry' (a nil value)
stack traceback:
...ches/torch/install/share/lua/5.1/dp/model/sequential.lua:30: in function '_forward'
...s/torches/torch/install/share/lua/5.1/dp/model/model.lua:60: in function 'forward'
[string "model:forward(testImageTensor)"]:1: in main chunk
[C]: in function 'xpcall'
...aries/torches/torch/install/share/lua/5.1/trepl/init.lua:588: in function 'repl'
...ches/torch/install/lib/luarocks/rocks/trepl/scm-1/bin/th:185: in main chunk
[C]: at 0x0804d650
答案 0 :(得分:2)
您有两种选择。
一。使用封装的nn.Module转发torch.Tensor:
mlp2 = mlp:toModule(datasource:trainSet():sub(1,2))
input = testImageTensor:view(1, 1, 32, 32)
output = mlp2:forward(input)
两个。将你的火炬.Tensor封装成dp.ImageView并通过你的dp.Model转发:
inputView = dp.ImageView('bchw', testImageTensor:view(1, 1, 32, 32))
outputView = mlp:forward(inputView, dp.Carry{nSample=1})
output = outputView:forward('b')