使用keras訓練模型時,我們需要將圖片分爲訓練集和驗證集,下面是使用python實現的劃分數據集的代碼
import os
import random
import shutil
from shutil import copy2
dir_name = os.listdir("./data")
def mk_dir():
#mkdir()--創建一級目錄 makedirs()--創建多級目錄
for name in dir_name:
os.makedirs('./train/' + name)
for name in dir_name:
os.makedirs('./val/' + name)
def move_file():
for name in dir_name:
trainfiles = os.listdir('./data/' + name + '/')#圖片文件夾
num_train = len(trainfiles)
print( "num_train: " + str(num_train) )
index_list = list(range(num_train))
print(index_list)
random.shuffle(index_list)
num = 0
trainDir = './train/' + name + '/'#將圖片文件夾中的7份放在這個文件夾下)
validDir = './val/' + name + '/'#將圖片文件夾中的3份放在這個文件夾
for i in index_list:
fileName = './data/' + name + '/' + trainfiles[i]
if num < num_train*0.7:
print(str(fileName))
copy2(fileName, trainDir)
else:
copy2(fileName, validDir)
num += 1
if __name__ == "__main__":
mk_dir()
move_file()