我一直在尝试将VGG-Face描述符模型(http://www.robots.ox.ac.uk/~vgg/software/vgg_face/)用于我的项目。我想做的只是从输入图像中获取网络的输出。
之前我没有使用任何MatConvNet,Caffe或PyTorch,因此我随机选择了PyTorch。事实证明,模型(类torch.legacy.nn.Sequential.Sequential)保存在较旧版本的PyTorch中,因此语法与PyTorch文档中的语法略有不同。
我能够像这样加载lua .t7模型:
vgg_net = load_lua('./vgg_face_torch/VGG_FACE.t7', unknown_classes=True)
加载输入图像:
# load image
image = imread('./ak.png')
# convert to tensor
input = torch.from_numpy(image).float()
兴高采烈地,我非常期待地将图像加载到模型中:
# load into vgg_net
output = vgg_net.forward(input)
然而,当代码无法编译时,我对它的合作希望很快就破灭了。留下一个神秘的错误信息:
Traceback (most recent call last):
File "~/Documents/python/vgg-face-test/vgg-pytorch.py", line 25, in <module>
output = vgg_net.forward(input)
File "~/.local/lib/python3.6/site-packages/torch/legacy/nn/Module.py", line 33, in forward
return self.updateOutput(input)
File "~/.local/lib/python3.6/site-packages/torch/utils/serialization/read_lua_file.py", line 235, in updateOutput_patch
return obj.updateOutput(*args)
File "~/.local/lib/python3.6/site-packages/torch/legacy/nn/Sequential.py", line 36, in updateOutput
currentOutput = module.updateOutput(currentOutput)
TypeError: 'NoneType' object is not callable
我绝对傻眼了。
这就是我在Stackoverflow上寻求帮助的原因。我希望这里有人可以帮我设置模型 - 甚至不一定在Torch中,实际上任何工作模型都可以,我可以简单地获取任何特定图像的描述。
答案 0 :(得分:0)
尝试output = vgg_net(input)
,不要转发。
显然,这调用了模块中定义的默认方法,但是我很难理解为什么这样做是必要的。