【发布时间】:2021-08-11 15:36:47
【问题描述】:
我有一个包含 16000 个不同的 512x512 numpy 数组的大型 HDF5 文件。显然将文件读入内存会导致崩溃(文件总大小为 40 GB)。
我想将此数组加载到数据中,然后将数据拆分为 train_x 和 test_x。 Tha标签存储在本地。
我这样做只是创建了一个文件路径而不获取
h5 = h5py.File('/file.hdf5', 'r')
data = h5.get('data')
但是当我尝试将数据拆分为训练和测试时:
x_train= data[0:14000]
y_train= label[0:16000]
x_test= data[14000:]
y_test= label[14000:16000]
我得到了错误
MemoryError: 无法为形状为 (14000, 256, 256) 且数据类型为 float32 的数组分配 13.42 GiB
我想批量加载它们并训练一个 keras 模型,但显然以前的错误不允许我这样做
model.compile(optimizer=Adam(learning_rate =0.001),loss
='sparse_categorical_crossentropy',metrics =['accuracy'])
history= model.fit(x_train,y_train,validation_data=
(x_test,y_test),epochs =32,verbose=1)
我该如何解决这个问题?
【问题讨论】:
-
您还在为这个问题寻找解决方案吗?
标签: python tensorflow machine-learning keras hdf5