日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > python >内容正文

python

python从date目录导入数据集_使用python划分数据集

發(fā)布時間:2023/12/10 python 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python从date目录导入数据集_使用python划分数据集 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

無論是訓(xùn)練機(jī)器學(xué)習(xí)或是深度學(xué)習(xí),第一步當(dāng)然是先劃分?jǐn)?shù)據(jù)集啦,今天小白整理了一些劃分?jǐn)?shù)據(jù)集的方法,希望大佬們多多指教啊,嘻嘻~

首先看一下數(shù)據(jù)集的樣子,flower_data文件夾下有四個文件夾,每個文件夾表示一種花的類別

劃分?jǐn)?shù)據(jù)集的主要步驟:

1. 定義一個空字典,用來存放各個類別的訓(xùn)練集、測試集和驗證集,字典的key是類別,value也是一個字典,存放該類別的訓(xùn)練集、測試集和驗證集;

2.使用python獲取所有的類別文件夾;

3.對每個類別劃分訓(xùn)練集、測試集和驗證集:(1)把該類別的所有有效圖片放入一個列表中;(2)設(shè)置一個隨機(jī)數(shù)對列表進(jìn)行劃分。

具體的代碼實現(xiàn)如下所示

importglobimportos.pathimportrandomimportnumpy as np#圖片數(shù)據(jù)文件夾

INPUT_DATA = ‘./flower_data‘

#這個函數(shù)從數(shù)據(jù)文件夾中讀取所有的圖片列表并按訓(xùn)練、驗證、測試數(shù)據(jù)分開#testing_percentage和validation_percentage指定了測試數(shù)據(jù)集和驗證數(shù)據(jù)集的大小

defcreate_image_lists(testing_percentage,validation_percentage):#得到的所有圖片都存在result這個字典里,key為類別的名稱,value值也是一個字典,存放的是該類別的

#文件名、訓(xùn)練集、測試集和驗證集

result ={}#獲取當(dāng)前目錄下所有的子目錄,這里x 是一個三元組(root,dirs,files),第一個元素表示INPUT_DATA當(dāng)前目錄,

#第二個元素表示當(dāng)前目錄下的所有子目錄,第三個元素表示當(dāng)前目錄下的所有的文件

sub_dirs = [x[0] for x inos.walk(INPUT_DATA)]#sub_dirs = [‘./flower_data‘,‘./flower_data\\daisy‘,‘./flower_data\\dandelion‘,

#‘./flower_data\\roses‘,‘./flower_data\\sunflowers‘,‘./flower_data\\tulips‘]

#每個子目錄表示一類花,現(xiàn)在對每類花劃分訓(xùn)練集、測試集和驗證集

#sub_dirs[0]表示當(dāng)前文件夾本身的地址,不予考慮,只考慮他的子目錄(各個類別的花)

for sub_dir in sub_dirs[1:]:#獲取當(dāng)前目錄下所有的有效圖片文件

extensions = [‘jpg‘,‘jpeg‘]#把圖片存放在file_list列表里

file_list =[]#os.path.basename(sub_dir)返回sub_sir最后的文件名

#如os.path.basename(‘./flower_data/daisy‘)返回daisy

dir_name =os.path.basename(sub_dir)for extension inextensions:

file_glob= os.path.join(INPUT_DATA,dir_name,‘*.‘+extension)#glob.glob(file_glob)獲取指定目錄下的所有圖片,存放在file_list中

file_list.extend(glob.glob(file_glob))if not file_list: continue

#通過目錄名獲取類別的名稱,返回將字符串中所有大寫字符轉(zhuǎn)換為小寫后生成的字符串

label_name =dir_name.lower()#初始化當(dāng)前類別的訓(xùn)練數(shù)據(jù)集、測試數(shù)據(jù)集和驗證數(shù)據(jù)集

training_images =[]

testing_images=[]

validation_images=[]for file_name infile_list:

base_name=os.path.basename(file_name)#隨機(jī)將數(shù)據(jù)分到訓(xùn)練數(shù)據(jù)集、測試數(shù)據(jù)集和驗證數(shù)據(jù)集

#產(chǎn)生一個隨機(jī)數(shù),最大值為100

chance = np.random.randint(100)if chance

validation_images.append(base_name)elif chance < (testing_percentage+validation_percentage):

testing_images.append(base_name)else:

training_images.append(base_name)#將當(dāng)前類別是數(shù)據(jù)放入結(jié)果字典

result[label_name]={‘dir‘:dir_name,‘training‘:training_images,‘testing‘:testing_images,‘validation‘:validation_images}#返回整理好的所有數(shù)據(jù)

returnresult

result= create_image_lists(10,30)print(result)

運(yùn)行結(jié)果:

可以看出字典result中有五個key,表示五個類別。

下圖是各個類別的劃分情況:

原文地址:https://www.cnblogs.com/lijingblog/p/9888930.html

總結(jié)

以上是生活随笔為你收集整理的python从date目录导入数据集_使用python划分数据集的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。