【发布时间】:2018-07-29 10:48:47
【问题描述】:
我正在尝试从斯坦福网站here 加载 Pascal VOC 数据集。还试图实现来自Semantic Image Segmentation on Pascal VOC Pystruct blog 的代码。但是当我尝试加载泡菜文件时,我得到了 UnicodeDecodeError。到目前为止,我尝试了以下代码:
import numpy as np
try:
import cPickle as pickle
except ImportError:
import pickle
from pystruct import learners
import pystruct.models as crfs
from pystruct.utils import SaveLogger
data_train = pickle.load(open("trainingData/data_train.pickle"))
C = 0.01
我得到了这个错误:
Traceback (most recent call last):
File "/Users/mypath/PycharmProjects/semantic_segmentation_ex/ex1.py", line 11, in <module>
data_train = pickle.load(open("trainingData/data_train.pickle"))
File "/usr/local/Cellar/python3/3.6.2/Frameworks/Python.framework/Versions/3.6/lib/python3.6/encodings/ascii.py", line 26, in decode
return codecs.ascii_decode(input, self.errors)[0]
UnicodeDecodeError: 'ascii' codec can't decode byte 0x80 in position 0: ordinal not in range(128)
我找不到任何相同的问题和解决方案。我如何让它发挥作用?
【问题讨论】:
-
通常情况下,Pickle 文件应以二进制模式打开:
open("trainingData/data_train.pickle","rb")。 -
试过了,但我还是遇到了同样的错误
-
您可能想添加一个
encoding='latin-1'作为参数。 -
我应该在哪里添加这个编码参数?
-
pickle.load(open("trainingData/data_train.pickle", 'wb', encoding='latin-1'))
标签: python-3.x numpy pickle semantic-segmentation