iT邦幫忙

2022 iThome 鐵人賽

DAY 12
0

分檔

今天廢廢的進度有點緩慢,因為一些小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萬筆資料在裡面,一次性刪掉電腦還會當機只好重建新資料夾。另外在廢廢等待期間呢,找到另一種更好的方法,但由於時間不夠只好明天在寫了。


上一篇
DAY 11 訓練資料的分割
下一篇
DAY 13 CNN資料處理完成
系列文
關於因耍廢太久而必須挑戰5個月上研究所的廢廢38
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言