我在尝试加载一些数据集时遇到了这个奇怪的错误。。。我不确定是什么导致了这个错误,因为我拥有的文件是.npz文件,它们“应该”通过np.load(file,allow_pickle=true)加载得很好。有关于如何修复的线索吗
下面是我要说的(这是cs231n项目的btw):
def load_imagenet_val(num=None):
"""Load a handful of validation images from ImageNet.
Inputs:
- num: Number of images to load (max of 25)
Returns:
- X: numpy array with shape [num, 224, 224, 3]
- y: numpy array of integer image labels, shape [num]
- class_names: dict mapping integer label to class name
"""
imagenet_fn = 'cs682/datasets/imagenet_val_25.npz'
if not os.path.isfile(imagenet_fn):
print('file %s not found' % imagenet_fn)
print('Run the following:')
print('cd cs682/datasets')
print('bash get_imagenet_val.sh')
assert False, 'Need to download imagenet_val_25.npz'
f = np.load(imagenet_fn, allow_pickle = True)
X = f['X']
y = f['y']
class_names = f['label_map'].item()
if num is not None:
X = X[:num]
y = y[:num]
return X, y, class_names
运行上述函数时,我得到以下跟踪:
---------------------------------------------------------------------------
UnpicklingError Traceback (most recent call last)
~/opt/anaconda3/lib/python3.7/site-packages/numpy/lib/npyio.py in load(file, mmap_mode, allow_pickle, fix_imports, encoding)
459 try:
--> 460 return pickle.load(fid, **pickle_kwargs)
461 except Exception:
UnpicklingError: invalid load key, '<'.
During handling of the above exception, another exception occurred:
OSError Traceback (most recent call last)
<ipython-input-6-4043844dfc8d> in <module>
1 from cs682.data_utils import load_imagenet_val
----> 2 X, y, class_names = load_imagenet_val(num=5)
3
4 plt.figure(figsize=(12, 6))
5 for i in range(5):
~/CS682/assignment3/cs682/data_utils.py in load_imagenet_val(num)
253 print('bash get_imagenet_val.sh')
254 assert False, 'Need to download imagenet_val_25.npz'
--> 255 f = np.load(imagenet_fn, allow_pickle = True)
256 X = f['X']
257 y = f['y']
~/opt/anaconda3/lib/python3.7/site-packages/numpy/lib/npyio.py in load(file, mmap_mode, allow_pickle, fix_imports, encoding)
461 except Exception:
462 raise IOError(
--> 463 "Failed to interpret file %s as a pickle" % repr(file))
464 finally:
465 if own_fid:
OSError: Failed to interpret file 'cs682/datasets/imagenet_val_25.npz' as a pickle
目前没有回答
相关问题 更多 >
编程相关推荐