批量加载H5PY文件
Load H5PY File in Batches
我创建了 200 个 H5PY 文件作为神经网络的训练数据。问题是加载的文件达到了我的内存可以处理的极限。我想将每个训练文件分成两个 batches.Let 说一批有 69000 个条目,我想我的记忆中只有 34500 个,训练网络,从我的记忆中删除这些条目并加载另一个一半看起来像这样:
for n in range(1,100):
inputdata=h5py.File("Data/IN"+str(n), "r").get("Tree")[()].astype(np.float16)
outputdata=h5py.File("Data/OUT"+str(n), "r").get("Tree")[()].astype(np.float16)
phi.fit(inputdata, outputdata,epochs=2,batch_size=32)
phi.save("trainedmodel_weights")
del inputdata
del outputdata
h5py 中是否集成了一个函数,允许我使用此功能并且我可以循环以便调用 .fit() 函数?
我现在已经通过如下修改代码解决了我的问题:
for n in range(1,10):
for i in range(1): # added
inputdata=h5py.File("Data/IN"+str(n), "r").get("Tree")[()]
**inputdata=np.array_split(inputdata, 2,axis=0)[i]**
inputdata=inputdata.astype(np.float32)
outputdata=h5py.File("Data/OUT"+str(n), "r").get("Tree")[()]
**outputdata=np.array_split(outputdata, 2,axis=0)[i]**
outputdata=outputdata.astype(np.float32)
phi.fit(inputdata, outputdata,epochs=2,batch_size=32)
phi.save("trainedmodel_weights")
del inputdata
del outputdata
我创建了 200 个 H5PY 文件作为神经网络的训练数据。问题是加载的文件达到了我的内存可以处理的极限。我想将每个训练文件分成两个 batches.Let 说一批有 69000 个条目,我想我的记忆中只有 34500 个,训练网络,从我的记忆中删除这些条目并加载另一个一半看起来像这样:
for n in range(1,100):
inputdata=h5py.File("Data/IN"+str(n), "r").get("Tree")[()].astype(np.float16)
outputdata=h5py.File("Data/OUT"+str(n), "r").get("Tree")[()].astype(np.float16)
phi.fit(inputdata, outputdata,epochs=2,batch_size=32)
phi.save("trainedmodel_weights")
del inputdata
del outputdata
h5py 中是否集成了一个函数,允许我使用此功能并且我可以循环以便调用 .fit() 函数?
我现在已经通过如下修改代码解决了我的问题:
for n in range(1,10):
for i in range(1): # added
inputdata=h5py.File("Data/IN"+str(n), "r").get("Tree")[()]
**inputdata=np.array_split(inputdata, 2,axis=0)[i]**
inputdata=inputdata.astype(np.float32)
outputdata=h5py.File("Data/OUT"+str(n), "r").get("Tree")[()]
**outputdata=np.array_split(outputdata, 2,axis=0)[i]**
outputdata=outputdata.astype(np.float32)
phi.fit(inputdata, outputdata,epochs=2,batch_size=32)
phi.save("trainedmodel_weights")
del inputdata
del outputdata