今天廢廢的進度有點緩慢,因為一些小bug與分檔緩慢的情況,在D11時還未將train分出valid,現在廢廢已消除問題並進行分割了。
依舊照用此網站的程式碼來進行資料分割【數據集按照csv格式標籤劃分為訓練集和驗證集】並根據情況做調整
#按照比例劃分出驗證集
import os
import shutil
import pandas as pd
import random
path1 = 'D:/porker_cnn/train1'
path2= 'D:/porker_cnn/valid'
valid_size=0.2
path_1_doc=os.listdir(path1) #讀資料夾的檔案名
path_1_doc_path=[path1+'/'+i for i in path_1_doc] #將path1加上path1的檔案
for doc in path_1_doc: # 新建空文件夹,使得和path1里的一样,doc=0、1、2、3、4
if not os.path.exists(path2+'/'+doc):
os.mkdir(path2+'/'+doc)
path_2_doc=os.listdir(path2)
print("start move data...")
for k in range(len(path_1_doc)):
print("moving fold "+str(k)) #看移動到第幾資料夾
i = path1+'/'+path_1_doc[k]
data_list=os.listdir(i) #data_list=[0.csv, 1.csv, 2.csv, ...]
#假設格式D:/porker_cnn/train1/0/0.csv
data_detailed=[i+'/'+j for j in data_list]
img_num=len(data_list)
#取data_detailed的兩成隨機資料
random_index=random.sample(range(0,img_num-1), int(valid_size*img_num))
for i in random_index:
#將選中的資料移至valid資料夾
shutil.move(data_detailed[i], path2+'/'+path_1_doc[k])
print("finish")
有人發現path1的路徑多了1嗎,因為某個笨廢廢做實驗重跑忘記分0~4的資料夾,所以train資料夾現在有174萬筆資料在裡面,一次性刪掉電腦還會當機只好重建新資料夾。另外在廢廢等待期間呢,找到另一種更好的方法,但由於時間不夠只好明天在寫了。