python劃分訓練集和驗證集

 使用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()
    

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章