无法在Python中打开NPY文件
我为一个机器学习项目收集了数据,并将数据保存为.npy文件,其格式为无法在Python中打开NPY文件,python,numpy,pickle,spyder,Python,Numpy,Pickle,Spyder,我为一个机器学习项目收集了数据,并将数据保存为.npy文件,其格式为 [[multidimarray][multidimarray][multidimarray][multidimarray]] .npy文件的大小各不相同。我使用的是Python3.7.6 64位。我遇到的问题如下: array = pickle.load(fp, **pickle_kwargs) EOFError: Ran out of input 我尝试加载带有的.npy文件,并使用np.load(os.path.jo
[[multidimarray][multidimarray][multidimarray][multidimarray]]
.npy文件的大小各不相同。我使用的是Python3.7.6 64位。我遇到的问题如下:
array = pickle.load(fp, **pickle_kwargs)
EOFError: Ran out of input
我尝试加载带有的.npy文件,并使用np.load(os.path.join(path,file),allow_pickle=True)作为数据:
但它总是给我EOR。我不认为该文件已损坏,因为我有一个约800MB的文件,我可以加载该文件,但不能加载一个约2.5GB的文件
如果在收集数据时有帮助,我将执行np.在循环中多次保存(文件名、培训数据)
并在len(培训数据)%1000==0时覆盖现有文件
有没有想过为什么我不能加载它?谢谢
编辑:下面是我用来生成.npy文件的循环:
file_name = SAVING_PATH + str(int(time.time())) + '.npy'
if os.path.isfile(file_name):
print('File exists, loading previous data!')
training_data = list(np.load(file_name))
else:
print('File does not exist, starting fresh!')
training_data = []
while True:
#screen is a npy array
screen = getscreen()
arr1,arr2,arr3,arr4 = getdata(screen)
cv2.imshow('window',screen)
training_data.append([arr1,arr2,arr3,arr4])
if len(training_data) % 500 == 0:
print(len(training_data))
np.save(file_name, training_data)
if cv2.waitKey(25) & 0xFF == ord('q'):
cv2.destroyAllWindows()
print(len(training_data))
np.save(file_name, training_data)
break
您是否尝试过使用np.load(os.path.join(path,file))
?您可以发布保存文件的循环代码吗?@Ehsan如果我没有包含allow\u pickle=True,python将不允许我加载该文件,因为ValueError:allow\u pickle=False时无法加载对象数组。我已经在Postal中添加了循环,所以我很确定我有足够的内存在中加载文件。您是否尝试过使用np.load(os.path.join(path,file))?您可以发布保存文件的循环代码吗?@Ehsan如果我没有包含allow\u pickle=True,python将不允许我加载该文件,因为ValueError:allow\u pickle=False时无法加载对象数组。我已经在Postal中添加了循环,所以我很确定我有足够的内存来加载文件