此操作目的是为了制作自己的数据集,深度学习框架进行数据准备,此操作步骤包括对文件夹进行操作,将两个文件夹合并至另一个文件夹
该实例为一个煤矿工人脸识别的案例;首先原始数据集(简化版的数据集旨在说明数据准备过程)如下图所示:
该数据集只有三个人的数据,A01代表工人甲的煤矿下的照片,B01代表工人甲下矿前的照片,同理A02, B02代表工人乙的矿下,矿上的照片数据…
<>强如下图所示强>
<>强矿下强>
<>强矿上强>
<强>开始制作数据集:强>
首先建立训练集(0.7)和测试集(0.3),即建立一个空白文件夹
将该文件夹分为四个小文件夹(空),火车代表训练集,val代表测试集,valb代表矿井下的测试集,西班牙代表矿井上的测试集,注:后边两个测试集可有可无
<强>最终制作的数据集如下所示:强>
<强>下面为所有的程序详解强>
#导入一些进行该操作需要的库 进口numpy np 进口操作系统 进口随机 进口shutil 路径=r 'C: \ \用户administrator.sky - 20180518 vhy \桌面\ rx \矿石' #原始数据集的路径 data=https://www.yisu.com/zixun/os.listdir(路径) # listdir该操作([添加链接描述)(https://www.jb51.net/article/184106.htm))在我的上篇文章中有所介绍,此操作能读取的内容为A01、A02, A03, B01, B02, B03这些文件夹 #打印(数据) 根路径=#复制原始数据路径路 >之前读取文件夹A01、A02, A03,存入c列表中B01, B02, B03,将其存入d列表中
c=[] d=[] #创建两个空列表 因为我在范围(len(数据)):=数据[我][0] 如果(==癮”): [我]c.append(数据) 其他: [我]d.append(数据) #打印(d)
<>强导入路径四个空文件夹的路径强>
train_root=' C: \ \ \ \用户administrator.sky - 20180518 vhy自己桌面\ \ \ \ \ \培训” val_root=' C: \ \ \ \用户administrator.sky - 20180518 vhy自己桌面\ \ \ \ \ \ val” vall_root=' C: \ \ \ \用户administrator.sky - 20180518 vhy自己桌面\ \ \ \ \ \ valb” valb_root=' C: \ \ \ \用户administrator.sky - 20180518 vhy自己桌面\ \ \ \ \ \西班牙” 因为我在范围(len (c)): 回调=os.path.exists (train_root +‘/? c[我][1:]) 如果(不调): os.mkdir (train_root +‘/? c[我][1:]) qq=os.path.exists (val_root +‘/? c[我][1:]) 如果(不是qq): os.mkdir (val_root +‘/? c[我][1:]) qq=os.path.exists (vall_root +‘/? c[我][1:]) 如果(不是qq): os.mkdir (vall_root +‘/? c[我][1:]) qq=os.path.exists (valb_root +‘/? c[我][1:]) 如果(不是qq): os.mkdir (valb_root +‘/? c[我][1:]) # f=[] # g=[] aq=' C: \ \ \ \ administrator.sky用户桌面\ \ rx - 20180518 vhy \ \ \ \ \ \矿” train_root1=' C: \ \ \ \用户administrator.sky - 20180518 vhy自己桌面\ \ \ \ \ \培训\ \ ' val_root1=' C: \ \ \ \用户administrator.sky - 20180518 vhy自己桌面\ \ \ \ \ \ val \ \ ' vall_root1=' C: \ \ \ \用户administrator.sky - 20180518 vhy自己桌面\ \ \ \ \ \ valb \ \ ' valb_root1=' C: \ \ \ \用户administrator.sky - 20180518 vhy \ \自己桌面\ \ \ \ vall \ \ ' 因为我在范围(len (c)): 一个=c[我] data_0=os.listdir (aq +一个) # f.append (data_0) # g.append (aq +一个) #打印(f) #打印(g) random.shuffle (data_0) #打一个中乱数据 j的范围(len (d)): b=d [j] 如果(1:==b [1:]): data_1=os.listdir (aq + b) #打印(aq + b); random.shuffle (data_1) #打印(data_1) #打印(data_0 data_1) z的范围(len (data_0)): #打印(z) pic_path=aq + +‘/? data_0 [z] 如果zpython实现将两个文件夹合并至另一个文件夹(制作数据集)