2016-06-15 51 views
1

我最近测试了代码Tensorflow VGG16。当我加载python3.4中的vgg16.npy。它出来的错误。 的代码是这样的:在python3.4中加载.npy文件错误

self.data_dict = np.load(vgg16_npy_path, encoding='latin1').item() 

错误:

TypeError: load() got an unexpected keyword argument 'encoding' 

但我删除encoding='latin1',只是

self.data_dict = np.load(vgg16_npy_path).item() 

这里还配备了一个错误:

File "/home/kang/Documents/work_code_PC1/tensorflow-vgg/vgg16.py", line 20, in __init__ 
    self.data_dict = np.load(vgg16_npy_path).item() 

    File "/usr/lib/python3/dist-packages/numpy/lib/npyio.py", line 394, in load 
    return format.read_array(fid) 

    File "/usr/lib/python3/dist-packages/numpy/lib/format.py", line 446, in read_array 
    array = pickle.load(fp) 

UnicodeDecodeError: 'ascii' codec can't decode byte 0xed in position 0: ordinal not in range(128) 

那么如何使用np.load在python3.4中加载.npy文件? 非常感谢。

回答

1

您似乎已经为Python 3.4安装了旧版本的NumPy。从我所知道的情况来看,encoding参数被添加到np.load()之间version 1.9.0version 1.9.1之间。尝试升级到NumPy的较新版本:

$ sudo pip3 install --upgrade numpy 
# ...or, if the above doesn't work on your platform: 
$ sudo pip install --upgrade numpy