如何预测使用Torch生成的模型?

时间:2015-03-02 09:20:55

标签: lua neural-network deep-learning torch

我执行了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

1 个答案:

答案 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')