Python 如何将所有图像转换为所有子文件夹并将其转换为h5文件?

Python 如何将所有图像转换为所有子文件夹并将其转换为h5文件?,python,numpy,keras,deep-learning,h5py,Python,Numpy,Keras,Deep Learning,H5py,在下面的代码中,我从代码和标签中所示的目录中读取了图像,并且使用matplotlib我能够绘制图像,但是我无法将所有这些数据保存在h5文件中。我在folderPlantVillage中有15个类(即15个文件夹) train_path='/home/snehil/Desktop/plantdisease/plantvillage/plantvillage' 列车x='/home/snehil/Desktop/plantdisease/plantvillage/plantvillage/Peppe

在下面的代码中,我从代码和标签中所示的目录中读取了图像,并且使用matplotlib我能够绘制图像,但是我无法将所有这些数据保存在h5文件中。我在folder
PlantVillage
中有15个类(即15个文件夹)

train_path='/home/snehil/Desktop/plantdisease/plantvillage/plantvillage'
列车x='/home/snehil/Desktop/plantdisease/plantvillage/plantvillage/Pepper\uuuuuuuuu bell\uuuuuuu bacteric\uu spot'
train\u batches=ImageDataGenerator()。从\u目录中流动\u(
火车路,
目标_大小=(224224),
班级=[
“辣椒、贝尔、细菌斑”,
“Pepper\u bell\u健康”,
“马铃薯早疫病”,
“土豆健康”,
“马铃薯晚疫病”,
“番茄细菌斑”,
“番茄早疫病”,
“番茄健康”,
“番茄晚疫病”,
“番茄叶霉”,
“番茄七斑病”,
“番茄蜘蛛螨两个斑点蜘蛛螨”,
“番茄目标点”,
“番茄花叶病毒”,
“番茄黄叶卷曲病毒”
],
批量大小=10
)
#在jupyter笔记本中使用标签打印图像
def绘图(ims,figsize=(12,6),行=1,interp=False,标题=None):
如果类型(ims[0])为np.ndarray:
ims=np.array(ims).astype(np.uint8)
如果(ims.shape[-1]!=3):
ims=ims.转置((0,2,3,1))
f=plt.图(figsize=figsize)
cols=len(ims)//如果len(ims)%2==0,则为行,否则len(ims)//行+1
对于范围内的i(len(ims)):
sp=f.add_子批次(行、列、i+1)
sp.axis(“关闭”)
如果标题不是无:
sp.set_标题(标题[i],字体大小=16)
plt.imshow(ims[i],如果interp else'None',则插值=None)
imgs,标签=下一个(系列批次)
绘图(IMG,标题=标签)
我已经试过这段代码了,它消耗了我所有的内存

import h5py
h5_train = h5py.File("train_x.h5", 'w')
h5_train.create_dataset("data_train", data=np.array(train_batches))
print(h5_train)
h5_train.close()

我不确定代码的描述是否与问题有关。你能编辑这个问题吗?路径正确吗
/home/Desktop/
@Dr.H.Lecter我已经编辑了这个问题,也许现在问题已经清楚了。我不是ML人员,所以不理解你的培训代码。当你说“消耗我所有的RAM”时,我怀疑你试图一次写入太多的数据。
列车批次中有什么类型的数据
?它有多大?您可能需要以增量方式写入培训数据。在train_批处理成员上创建一个循环,并将成员数据一次写入HDF5。@kcw78是的,我知道了,问题是总文件大小为11GB,因此我的ram被消耗殆尽。我创建了一个循环,一次写入一个HDF5,结果成功了。我对此表示怀疑,但多亏了你的评论,我认为应该这样做。