_pickle.UnpicklingError: удаление недопитания стека - PullRequest
0 голосов
/ 13 октября 2018

Я новичок в Deep-Learning и пытаюсь повторить код в 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
...