import os import numpy import random, shutil def moveSomeFileToNewDir(fileDir, tarDir): #sonDirPath = [] allDir = os.listdir(fileDir) # 列出指定路徑下的全部文件夾,以列表的方式保存 for dir in allDir: # 遍歷指定路徑下的全部文件和文件夾 sonDirName = os.path.join(fileDir, dir) # 子文件夾的路徑名稱 if os.path.isdir(sonDirName): #sonDirPath.append(sonDirName) pathDir = os.listdir(sonDirName) # 取圖片的原始路徑 filenumber = len(pathDir) rate = 0.15 # 自定義抽取圖片的比例,比方說100張抽15張,那就是0.15 picknumber = int(filenumber * rate) # 按照rate比例從文件夾中取一定數量圖片 sample = random.sample(pathDir, picknumber) # 隨機選取picknumber數量的樣本圖片 print(sample) for name in sample: oldDir = sonDirName +'\\'+ name newDir = tarDir + '\\' + dir isExists = os.path.exists(newDir) if not isExists: os.makedirs(newDir) newTarDir = tarDir +'\\'+dir +'\\'+ name print(oldDir, newTarDir) shutil.move(oldDir, newDir) fileDir = r"E:\all_data" #源圖片文件夾路徑 valDir = r'E:\val_data' #移動到驗證集目錄路徑 moveSomeFileToNewDir(fileDir, valDir) testDir = r'E:\test_data' #移動到測試集目錄路徑 moveSomeFileToNewDir(fileDir, testDir)
把原始圖片隨機分爲訓練集驗證集測試集
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.