在 python3.4 错误中加载 .npy 文件

load .npy file in python3.4 error

我最近测试了Tensorflow VGG16的代码。当我在 python3.4 中加载 vgg16.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文件呢? 非常感谢。

您似乎为 Python 3.4 安装了旧版本的 NumPy。据我所知,encoding 参数已添加到 version 1.9.0 and version 1.9.1 之间的 np.load()。尝试升级到更新版本的 NumPy:

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