在PyTorch中设置VGG-Face描述符

时间:2017-12-05 03:06:04

标签: python deep-learning torch face-recognition pytorch

我一直在尝试将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中,实际上任何工作模型都可以,我可以简单地获取任何特定图像的描述。

1 个答案:

答案 0 :(得分:0)

尝试output = vgg_net(input),不要转发。 显然,这调用了模块中定义的默认方法,但是我很难理解为什么这样做是必要的。