python從date目錄導入數據集_使用python劃分數據集

無論是訓練機器學習或是深度學習,第一步當然是先劃分數據集啦,今天小白整理了一些劃分數據集的方法,希望大佬們多多指教啊,嘻嘻~

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

20181101143649151120.jpg

20181101143649356185.jpg

劃分數據集的主要步驟:

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

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

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

具體的代碼實現如下所示

importglobimportos.pathimportrandomimportnumpy as np#圖片數據文件夾

INPUT_DATA = ‘./flower_data‘

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

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

#文件名、訓練集、測試集和驗證集

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

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

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‘]

#每個子目錄表示一類花,現在對每類花劃分訓練集、測試集和驗證集

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

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

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

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

label_name =dir_name.lower()#初始化當前類別的訓練數據集、測試數據集和驗證數據集

training_images =[]

testing_images=[]

validation_images=[]for file_name infile_list:

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

#產生一個隨機數,最大值為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)#將當前類別是數據放入結果字典

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

returnresult

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

運行結果:

20181101143649668665.jpg

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

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

20181101143649804399.jpg

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

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/258964.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/258964.shtml
英文地址,請注明出處:http://en.pswp.cn/news/258964.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

開源牛人 zcbenz

事情是這樣的&#xff0c;微軟推出了Visual Studio Code&#xff0c;我很好奇他怎么做跨平臺的&#xff0c;所以就找找資料&#xff0c;在他的網站中是這么描述的&#xff1a; Architecturally, Visual Studio Code combines the best of web, native, and language-specific t…

eclipse 與 tomcat 的那些路徑

我們用mvn創建了一個web工程&#xff0c;同時希望在eclipse里調試開發。mvn有mvn的路徑要求&#xff0c;eclispe有eclipse的默認路徑&#xff0c;怎么整合二者&#xff1f; 首先介紹一下eclipse的默認路徑。 重點在Server Locations里面。 下面我們把[workspace]/.metadata\.pl…

boost解析xml文件

前面我們介紹了xml文件&#xff0c;今天我們試著用boost庫來解析xml文件。我們將舉兩個例子來說明怎么使用。 來自boost官方的例子 先看xml文件的內容&#xff1a; <debug><filename>debug.log</filename><modules><module>Finance</modul…

使用網橋模式(bridge networking mode)配置KVM-QUME虛擬機網絡

&#xff08;1&#xff09;linux要工作在網橋模式&#xff0c;所以必須安裝兩個RPM包。即&#xff1a;bridge-utils和tunctl。它們提供所需的brctl、tunctl命令行工具。能夠使用yum在線安裝&#xff1a; [rootserver3 ~]# yum install bridge-utils &#xff08;2&#xff09;查…

python數據處理常用函數_pandas數據分析常用函數總結大全:上篇

基礎知識在數據分析中就像是九陽神功&#xff0c;熟練的掌握&#xff0c;加以運用&#xff0c;就可以練就深厚的內力&#xff0c;成為絕頂高手自然不在話下&#xff01; 為了更好地學習數據分析&#xff0c;我對于數據分析中pandas這一模塊里面常用的函數進行了總結。整篇總結&…

XML的應用

1.XML的定義: XML 于 1998 年 2 月 10 日成為 W3C 的推薦標準。xml一般指可擴展標記語言&#xff0c;可擴展標記語言是一種很像超文本標記語言的標記語言。它的設計宗旨是傳輸數據&#xff0c;而不是顯示數據。 2.通過XML我們可以自定義自己的標簽&#xff0c;如&#xff1a; &…

虛擬機VMware里 windows server 2003 擴充C盤方法

你會經常用windows server 2003 嗎&#xff1f;應該不會吧&#xff0c;有時一些東西必須裝在windows server 2003 上才能用&#xff0c;所以 用虛擬機把&#xff0c;好&#xff0c;裝在虛擬機上&#xff0c;8G的C盤夠你用嗎&#xff0c;一個稍微大點的軟件就可能就沒空間來存儲…

從運維角度淺談MySQL數據庫優化

一個成熟的數據庫架構并不是一開始設計就具備高可用、高伸縮等特性的&#xff0c;它是隨著用戶量的增加&#xff0c;基礎架構才逐漸完善。這篇博文主要談MySQL數據庫發展周期中所面臨的問題及優化方案&#xff0c;暫且拋開前端應用不說&#xff0c;大致分為以下五個階段&#x…

c語言c99標準_自學C語言之一

上次自學C語言還是在剛開學到國慶期間&#xff0c;聽學姐的建議買了本C語言的書&#xff0c;在軍訓期間的晚上翻翻看看。后來選課、開始正式上課、面試社團、開各種會等等&#xff0c;好像每天都有許多事要忙&#xff0c;但又沒忙出來什么結果&#xff0c;慢慢地好像就把C語言放…

boost解析info文件

先給出info文件&#xff1a; parameters {MAX_STAGES 4MAX_DEPTH 3MAX_NUMTRESS 5MAX_NUMTHRESHS 500MAX_NUMFEATS 1000,1000,1000,500,500,500,400,400MAX_RATIO_RADIUS 0.3,0.2,0.2,0.15,0.12,0.10,0.08,0.06,0.06,0.05BAGGING_OVERLAP 0.4IS_FLIP true }meanface {MAX_ITER…

Font Rending 的 Hint 機制對排版的影響

Font Rending 的 Hint 機制對排版的影響【轉】 在設計一種 Font 時&#xff0c;設計者使用的是一個抽象的單位&#xff0c;叫做 EM&#xff0c;來源于大寫 M 的寬度&#xff08;通常英文字體中大寫 M 的寬度最大&#xff09;。EM 即不同于在屏幕顯示時用的像素&#xff08;Pixe…

《SQL初學者指南(第2版)》——2.4 指定列

本節書摘來自異步社區出版社《SQL初學者指南&#xff08;第2版&#xff09;》一書中的第2章&#xff0c;第2.4節&#xff0c;作者&#xff1a;【美】Larry Rockoff&#xff0c;更多章節內容可以訪問云棲社區“異步社區”公眾號查看。 2.4 指定列 到目前為止&#xff0c;我們只…

python從文件中提取特定文本_使用Python從HTML文件中提取文本

我發現最好的一段代碼用于提取文本&#xff0c;而不需要javascript或不需要的東西&#xff1a;import urllibfrom bs4 import BeautifulSoupurl "http://news.bbc.co.uk/2/hi/health/2284783.stm"html urllib.urlopen(url).read()soup BeautifulSoup(html)# kill …

mutable、volatile的使用

本文轉載自http://blog.csdn.net/tht2009/article/details/6920511 (1)mutable 在C中&#xff0c;mutable是為了突破const的限制而設置的。被mutable修飾的變量&#xff0c;將永遠處于可變的狀態&#xff0c;即使在一個const函數中&#xff0c;甚至結構體變量或者類對象為const…

文本框點擊后文字消失總結

1.文本框顯示默認文字&#xff1a; <textarea>白鴿男孩</textarea> <textarea>白鴿男孩</textarea>    2.鼠標點擊文本框&#xff0c;默認文字消失&#xff1a; <textarea οnfοcus”if(value’白鴿男孩’) {value’ ‘}”>白鴿男孩</text…

[裴禮文數學分析中的典型問題與方法習題參考解答]4.5.8

需要全部的解答, 請 http://www.cnblogs.com/zhangzujin/p/3527416.html 設 $f(x)$ 在 $[a,\infty)$ 上可微; 且 $x\to\infty$ 時, $f(x)$ 單調遞增趨于 $\infty$, 則 $$\bex \int_a^\infty \sin f(x)\rd x,\quad \int_a^\infty \cos f(x)\rd x \eex$$ 都收斂. 證明: 由 $$\be…

《PowerShell V3——SQL Server 2012數據庫自動化運維權威指南》——2.13 創建視圖...

本節書摘來自異步社區出版社《PowerShell V3—SQL Server 2012數據庫自動化運維權威指南》一書中的第2章&#xff0c;第2.13節&#xff0c;作者&#xff1a;【加拿大】Donabel Santos&#xff0c;更多章節內容可以訪問云棲社區“異步社區”公眾號查看。 2.13 創建視圖 本方案展…

python刷抖音_用Python生成抖音字符視頻!

抖音字符視頻在去年火過一段時間。 反正我是始終忘不了那段極樂凈土的音樂... 這一次自己也來實現一波&#xff0c;做一個字符視頻出來。 主要用到的庫有cv2&#xff0c;pillow庫。 原視頻如下&#xff0c;直接抖音下載的&#xff0c;妥妥的水印。 不過并不影響本次的操作。 / …

變長參數

轉載自&#xff1a;http://blog.csdn.net/tht2009/article/details/7019635 變長參數 設計一個參數個數可變、參數類型不定的函數是可能的&#xff0c;最常見的例子是printf函數、scanf函數和高級語言的Format函數。在C/C中&#xff0c;為了通知編譯器函數的參數個數和類型可變…

第十七章 我國農業科學技術

農村改革解說&#xff08;專著&#xff09;第十七章 第十七章 我國農業科學技術 1、為什么說科學技術是生產力&#xff1f; 我們說科學技術是生產力&#xff0c;是因為在構成生產力的兩個主要因素中&#xff0c;都包含著科學技術在內。 A、生產力中人的因素是同一定的科學技術緊…