Windows 7 pickle.load中的UnicodeDecodeError

Windows 7 pickle.load中的UnicodeDecodeError,windows-7,pickle,python-3.5,non-ascii-characters,Windows 7,Pickle,Python 3.5,Non Ascii Characters,我在使用pickle加载pkl文件时遇到一些问题。我正在使用Windows7和Python3.5.1 64位。pkl文件已从下载 这是我的代码: import pickle # Load model weights and metadata weightFile = open('vgg16.pkl', 'rb') d = pickle.load(weightFile) 当我运行它时,我得到了输出 "C:\Program Files\Python35\python.exe" C:/work/l

我在使用pickle加载pkl文件时遇到一些问题。我正在使用Windows7和Python3.5.1 64位。pkl文件已从下载

这是我的代码:

import pickle

# Load model weights and metadata
weightFile = open('vgg16.pkl', 'rb')
d = pickle.load(weightFile)
当我运行它时,我得到了输出

"C:\Program Files\Python35\python.exe" C:/work/lasagne/tutorial/lasagne-tutorial2.py
Traceback (most recent call last):
  File "C:/work/lasagne/tutorial/lasagne-tutorial2.py", line 5, in <module>
    d = pickle.load(weightFile)
UnicodeDecodeError: 'ascii' codec can't decode byte 0xbc in position 1: ordinal not in range(128)

Process finished with exit code 1
“C:\Program Files\Python35\python.exe”C:/work/lasagne/tutorial/lasagne-tutorial2.py
回溯(最近一次呼叫最后一次):
文件“C:/work/lasagne/tutorial/lasagne-tutorial2.py”,第5行,在
d=pickle.load(权重文件)
UnicodeDecodeError:“ascii”编解码器无法解码位置1中的字节0xbc:序号不在范围内(128)
进程已完成,退出代码为1
这个错误消息是什么意思?它说有一个字节acsii编解码器无法解码,但pkl文件不应该是二进制的(因此不包含ascii字符)

加载文件时我是否做错了什么?如何修复错误?

在中找到了解决方案。pickle文件可能是用Python2编码的,提供了带有可选参数
encoding='latin1'
pickle.load
,解决了这个问题

有效的代码如下所示:

import pickle

# Load model weights and metadata
weightFile = open('vgg16.pkl', 'rb')
d = pickle.load(weightFile, encoding='latin1')