深度學習 資料分割

2021-10-04 15:55:03 字數 2423 閱讀 3255

在訓練模型前,要把資料集進行分割,按照一定比例分成訓練集、測試集、驗證集,在有些時候也可以忽略測試集,筆者這裡是分了測試集(訓練集:測試集:驗證集=8:1:1),廢話不說,直接上**

# h_split.py

import os

from shutil import copy

import random

defmkfile

(file):

ifnot os.path.exists(

file):

os.makedirs(

file

)file

='h_data/h_photos'

h_class =

[cla for cla in os.listdir(

file)if

".txt"

notin cla]

# cla for cla in os.listdir(file) if ".txt" not in cla

# 查詢file目錄下所有的檔案,也就說分類的類別即根據file目錄下的資料夾個數確定分類的類別

# 建立訓練集

mkfile(

'h_data/train'

)for cla in helmet_class:

mkfile(

'h_data/train/'

+cla)

# 建立測試集

mkfile(

'h_data/test'

)# 建立驗證集

mkfile(

'h_data/val'

)for cla in helmet_class:

mkfile(

'h_data/val/'

+cla)

split_rate =

0.1for cla in h_class:

cla_path =

file

+'/'

+ cla +

'/' images = os.listdir(cla_path)

# images儲存了所有的名稱

num =

len(images)

eval_index = random.sample(images, k=

int(num*split_rate)

)# print(eval_index)

# 從images列表中抽取k個,num為總數,split_rate為自定義的比例

# 隨機抽取出的資料為驗證集, eval_index為名稱

rest_images =

list

(set

(images)

.difference(

set(eval_index)))

#取images和eval_index的差集,得到未在eval_index中的

test_index = random.sample(rest_images, k=

int(num*split_rate)

)# 得到測試集資料

for index, image in

enumerate

(images)

:# enumerate()函式按照索引序列遍歷物件

if image in eval_index:

image_path = cla_path + image

new_path =

'h_data/val/'

+ cla

copy(image_path, new_path)

elif image in test_index:

image_path = cla_path + image

new_path =

'h_data/test/'

copy(image_path, new_path)

else

: image_path = cla_path + image

new_path =

'h_data/train/'

+ cla

copy(image_path, new_path)

print

("\r[{}] processing [{}/{}]"

.format

(cla, index+

1, num)

, end="")

# processing bar

print()

print

("processing done!"

)

特別說明1.file:要換成自己資料所在的目錄

2.筆者的目錄結構如下:

3.資料分割的檔案(h_split.py)同h_data放在同一目錄下

深度學習 語義分割總結

翻譯自qure.ai 什麼是語義分割 對的每個畫素都做分類。較為重要的語義分割資料集有 voc2012 以及 mscoco 有哪幾種方法 傳統機器學習方法 如畫素級的決策樹分類,參考textonforest 以及 random forest based classifiers 再有就是深度學習方法。...

深度學習(一)深度學習學習資料

持續更新 一 學習清單 1 收集了各種最新最經典的文獻,神經網路的資源列表 2 計算機視覺學習清單 3 機器學習學習清單 二 訓練資料 人臉資料 1 香港中文大學訓練資料集 此資料庫包含了20w張人臉,每張標註了5個特徵點 以及幾十種屬性 是否微笑 膚色 髮色 性別等屬性 2 68個人臉特徵點 3 ...

語義分割 基於openCV和深度學習(一)

語義分割 基於opencv和深度學習 一 semantic segmentation with opencv and deep learning 傳統的分割方法是將影象分割為若干部分 標準化切割 圖形切割 抓取切割 超畫素等 然而,演算法並沒有真正理解這些部分所代表的內容。另一方面,語義分割演算法試...