_pickle.UnpicklingError:取消堆栈下溢

时间:2018-10-13 04:16:00

标签: python linux deep-learning load pytorch

我是深度学习的新手,我尝试重复执行https://github.com/swamiviv/LSD-seg中用于图像语义分割的代码,但是在Pytorch中发生了问题,我真的需要您的帮助。

非常感谢。

这里是环境:

Ubuntu 14.04.1
Python 3.6.4
Pytorch 0.4.0

该代码用于下载经过预训练的模型,但是我的服务器无法访问googledrive,因此我从其他方法下载了该模型,并将模型文件更新到了服务器,并更改了相关代码,但是没有用。

原始代码:

import os.path as osp
import fcn
import torch
import torchvision

def VGG16(pretrained=False):
    model = torchvision.models.vgg16(pretrained=False)
    if not pretrained:
        return model

    model_file = _get_vgg16_pretrained_model()
    state_dict = torch.load(model_file)
    model.load_state_dict(state_dict)
    return model

def _get_vgg16_pretrained_model():
    return fcn.data.cached_download(url='http://drive.google.com/uc?id=0B9P1L--7Wd2vLTJZMXpIRkVVRFk',path=osp.expanduser('/home/sunyuze/LSD/data/vgg16_from_caffe.pth'),md5='aa75b158f4181e7f6230029eb96c1b13',)

通过其他方法下载模型文件并将其放置在特定位置后,我修改了代码:

import os.path as osp
import fcn
import torch
import torchvision

def VGG16(pretrained=False):
    model = torchvision.models.vgg16(pretrained=False)
    if not pretrained:
        return model

    state_dict = torch.load('/home/sunyuze/LSD/data/vgg16_from_caffe.pth')
    model.load_state_dict(state_dict)
    return model

错误警报为:

Traceback (most recent call last):
  File "train.py", line 157, in <module>
    main()
  File "train.py", line 76, in main
    vgg16 = torchfcn.models.VGG16(pretrained=True)
  File "/home/sunyuze/LSD/code/torchfcn/models/vgg.py", line 17, in VGG16
    state_dict = torch.load('/home/sunyuze/LSD/data/vgg16_from_caffe.pth')
  File "/home/sunyuze/anaconda3/lib/python3.6/site-packages/torch/serialization.py", line 303, in load
    return _load(f, map_location, pickle_module)
  File "/home/sunyuze/anaconda3/lib/python3.6/site-packages/torch/serialization.py", line 459, in _load
    magic_number = pickle_module.load(f)
_pickle.UnpicklingError: unpickling stack underflow

0 个答案:

没有答案