我是深度学习的新手,我尝试重复执行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