将预训练caffe模型导入链接器时出现错误解析消息

时间:2018-07-17 15:58:28

标签: chainer

我想将Resnet50预训练文件“ ResNet-50-model.caffemodel”导入到chainer。 这是链接器代码:

class chexnet(L.ResNet50Layers):

def __init__(self, pretrained_model="auto", out_features=2):
    super(chexnet, self).__init__(pretrained_model)
    with self.init_scope():
        self.classifier = L.Linear(2048, out_features)

但是我收到如下错误消息:

  File "/home/tamnt27/.local/lib/python3.5/site-packages/chainer/links/model/vision/resnet.py", line 148, in convert_caffemodel_to_npz
    caffemodel = CaffeFunction(path_caffemodel)
  File "/home/tamnt27/.local/lib/python3.5/site-packages/chainer/links/caffe/caffe_function.py", line 151, in __init__
    net.MergeFromString(model_file.read())
google.protobuf.message.DecodeError: Error parsing message

我不知道为什么会发生此错误,该错误应该起作用,请帮助我。谢谢大家。

1 个答案:

答案 0 :(得分:1)

我试图重现你的情况,但不能。

我的环境是

  • python2.7
  • chainer4.2.0
  • cupy4.2.0

我从下载了模型 https://onedrive.live.com/?authkey=%21AAFW2-FVoxeVRck&id=4006CBB8476FF777%2117887&cid=4006CBB8476FF777

并将其放在~/.chainer/dataset/pfnet/chainer/models/ResNet-50-model.caffemodel

我认为下载的文件已损坏,因此建议您通过以下方式检查md5sum

$ md5sum ~/.chainer/dataset/pfnet/chainer/models/ResNet-50-model.caffemodel
44b20660c5948391734036963e855dd2

如果md5sum与我的不同,请尝试重新下载该模型。