MachineLearning(2)-圖像分類常用數據集

圖像分類常用數據集

  • 1 CIFAR-10
  • 2.MNIST
  • 3.STL_10
  • 4.Imagenet
  • 5.L-Sun
  • 6.caltech-101

在訓練神經網絡進行圖像識別分類時,常會用到一些通用的數據集合。利用這些數據集合可以對比不同模型的性能差異。下文整理常用的圖片數據集合(持續更新中)。
基本信息對比表格:

數據集合類別數圖像數/類訓練集測試集圖像大小格式數據集大小圖像內容
CIFAR-10106k5w1w32*32RGB163M交通工具,動物
MNIST107k6w1w28*28灰度54M手寫數字
STL_10101300(label)+10W(unlabel)50080096*96RGB2.5G與cifar一樣
L-sun10256*256RGB>50G場景

1 CIFAR-10

CIFAR-10是RGB 彩色圖像數據集,是Hinton的學生Alex標注整理發布。
數據集發布網站:http://www.cs.toronto.edu/~kriz/cifar.html

一共包含10 個類別:飛機( airplane )、汽車( automobile )、鳥類( bird )、貓( cat )、鹿( deer )、狗( dog )、蛙類( frog )、馬( horse )、船( ship )和卡車( truck )。

每個圖片的尺寸為32 × 32 ,每個類別有6000個圖像,數據集中一共有50000 張訓練圖片和10000 張測試圖片。訓練數據背分別放在5個.bin文件中,測試數據放在1個文件中。

一個樣本由32323=3073 個字節組成,第一個字節為標簽label ,剩下3072 個字節為圖像數據。樣本和樣本之間沒高多余的字節分割, 每個二進制文件的大小是30730000 字節。

數據集合的文件目錄如下:
在這里插入圖片描述
通過pytorch 讀入cifar-10數據文件:

transform=transforms.Compose([transforms.ToTensor(),transforms.Normalize((0.5, 0.5, 0.5), (0.5, 0.5, 0.5)), ])

訓練集,將目錄./data下的cifar-10-batches-py文件夾中的全部訓練數據(50000張訓練圖片)加載到內存中,若download為True時,會自動從網上下載數據并解壓

trainset = torchvision.datasets.CIFAR10(root=’./data’, train=True, download=True, transform=transform)

將訓練集的50000張圖片劃分成12500份,每份4張圖,用于mini-batch輸入。shffule=True在不同epoch的數據遍歷時,打亂順序重新分組。num_workers=2:使用兩個子進程來加載數據

trainloader = torch.utils.data.DataLoader(trainset, batch_size=4, shuffle=True, num_workers=2)

測試集,將目錄./data下的cifar-10-batches-py文件夾中的全部測試數據(10000張測試圖片)加載到內存中,若download為True時,會自動從網上下載數據并解壓

testset = torchvision.datasets.CIFAR10(root=’./data’, train=False, download=False, transform=transform)

將測試集的10000張圖片劃分成2500份,每份4張圖,用于mini-batch輸入。

testloader = torch.utils.data.DataLoader(testset, batch_size=4, shuffle=False, num_workers=2)

用for 循環enumerate在trainloader和testloader 中取批次數據即可。

for i, data in enumerate(trainloader, 0):

參考資料:https://blog.csdn.net/qq_41185868/article/details/82793025

2.MNIST

3.STL_10

官方網址:https://cs.stanford.edu/~acoates/stl10/

STL-10數據集是用于開發無監督特征學習、深度學習、自學習算法的圖像識別數據集。它的靈感來自CIFAR-10數據集,并進行了一些修改。與CIFAR-10相比,每一類別 標記訓練樣本數量較少.但是在監督訓練之前,提供了大量的未標記樣本來學習圖像模型。主要的困難是利用未標記的數據(來自與標記數據相似但不同的分布)來構建有用的先驗。我們還期望,該數據集以較高分辨率(96x96)將使其成為開發更具伸縮性的無監督學習方法的基準。

1.10個類:飛機、鳥、汽車、貓、鹿、狗、馬、猴、船、卡車。
2.圖像為96x96像素,彩色。
3.500張訓練圖像(10份)/每類,800張測試圖像/每類。
4.用于無監督學習的100000張無標簽圖像。這些樣本是從相似但分布更廣的圖像中提取出來的。例如,10類標簽中的動物外,它還包含其5.他類型的動物(熊、兔子等)和車輛(火車、公共汽車等)。
圖像是從ImageNet上標記的樣本中獲取的。

官網提供了matlab 版本(.mat)和python 版本(二進制文件)的數據文件,(我用的是python版本的文件)

二進制文件有數據文件標簽文件:train_X.bin(數據文件)、train_y.bin(標簽文件)、test_X.bin和test_y.bin。在每個值中,數據存儲格式:uint8的數組。圖像以列主順序存儲,一次一個通道。也就是說,前9696值是紅色通道,后9696值是綠色,最后一個是藍色。標簽在1到10之間。未標記的數據集unlabeld.bin的格式相同,但不存在“y.bin”文件。

提供一個class_names.txt文件供參考,每行一個類名。

文件fold_index.txt包含用于訓練的每個fold的(0開始)索引。第一行包含第一個fold、第二行、第二個fols索引等等等。

感謝Martin Tutek為加載/查看STL-10提供代碼!鏈接:https://github.com/mttk/STL10
stl10在pytorch 中對應的數據載入接口:torchvision.datasets.STL10(root: str, split: str = ‘train’, folds: Optional[int] = None, transform: Optional[Callable] = None, target_transform: Optional[Callable] = None, download: bool = False)

4.Imagenet

網址:http://www.image-net.org/download.php
ImageNet是一個根據WordNet層次結構(目前只有名詞)組織的圖像數據庫,其中每個節點都由成百上千的圖像描述。目前平均每個節點有500多個圖像。
1500萬張,數據大小1TB,但是算力不夠的情況下只會用到其中的一些子集.

光imaget 2012 就是150G(下不動,下不動)

pytorch 提供的數據接口針對:ImageNet 2012 Classification Dataset.

要注冊,才能下載圖像,知乎操作:https://zhuanlan.zhihu.com/p/42696535

5.L-Sun

官網:https://www.yf.io/p/lsun-介紹l-sun 文章,比賽,數據集,有鏈接直轉到數據下載github倉庫
github:https://github.com/fyu/lsun

l-sun 是一個場景數據庫,包括10個場景.場景和對應的序號為:

bedroom 0 # --40G
bridge 1
church_outdoor 2
classroom 3
conference_room 4
dining_room 5
kitchen 6
living_room 7
restaurant 8
tower 9 #train+test --13.9G

tower-train-Minibatch_size為64,有11067個batch,約合70w張圖片)

6.caltech-101

官網:http://www.vision.caltech.edu/Image_Datasets/Caltech101/
加利福尼亞理工學院101類圖像數據庫,有101類物體的圖片。每個類別大約有40到800個圖像。大多數類別都有大約50張圖片。2003年9月由李飛飛、安德烈托和蘭扎托收藏。每個圖像的大小大約為300 x 200像素。(9144張,平均每個類別90張)
制作者們仔細點擊了這些圖片中每個對象的輪廓,輪廓信息包含在“Annotations.tar”下面,有一個matlab腳本可以查看注釋,
“show_annotations.m”。

caltech-256,30607張圖片,1.2G(平均每個類別119張.)

101 object, 256 object 都是folder 數據集合,使用pytorch dset.ImageFolder接口即可.

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

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

相關文章

Linux網絡編程實例詳解

本文介紹了在Linux環境下的socket編程常用函數用法及socket編程的一般規則和客戶/服務器模型的編程應注意的事項和常遇問題的解決方法,并舉了具體代 碼實例。要理解本文所談的技術問題需要讀者具有一定C語言的編程經驗和TCP/IP方面的基本知識。要實習本文的示例&…

python的命令解析getopt.getopt()函數分析

【轉自http://hi.baidu.com/javalang/blog/category/Python】 可以參考http://docs.python.org/lib/module-getopt.html # -*- coding: cp936 -*-import getoptimport sysdef usage():print Help Information:-h: Show help information-xValue:...if __name____main__:#set d…

博弈論基礎

博弈論總結 什么是博弈論: 多人進行博弈,假設每個人都采取最優策略,一定有一個人勝出,在知道初態及規則的情況下,求解出 何人勝出的一類問題的理論及方法。 博弈論的一些性質 P點:必敗點,N…

矩陣論-范數理論及其應用

范數理論及其應用2.1向量范數及其性質2.2矩陣范數本系列博文主要總結學習矩陣論的心得筆記,參考數目《矩陣論》–張凱院;整個文章的整理體系參照行書過程。范數–非負實數,用于衡量線性空間元素(如:向量,矩…

大數據學習(09)--spark學習

文章目錄目錄1.spark介紹1.1 spark介紹1.2 scale介紹1.3 spark和Hadoop比較2.spark生態系統3.spark運行框架3.1 基本概念3.2 架構的設計3.3 spark運行基本流程3.4 spark運行原理3.5 RDD運行原理3.5.1 設計背景3.5.2 RDD概念和特性3.5.3 RDD之間的依賴關系3.5.4 stage的劃分3.5.…

探索 Pexpect

概述 通過本系列第一部分 《探索 Pexpect,第 1 部分:剖析 Pexpect 》(請參閱參考資料)的介紹,相信大家已經對 Pexpect 的用法已經有了比較全面的了解,知道 Pexpect 是個純 Python 語言實現的模塊&#xff…

Python的Pexpect詳解 [圖片]

Pexpect 是一個用來啟動子程序并對其進行自動控制的純 Python 模塊。 Pexpect 可以用來和像 ssh、ftp、passwd、telnet 等命令行程序進行自動交互。繼第一部分《探索 Pexpect,第 1 部分:剖析 Pexpect 》介紹了 Pexpect 的基礎和如何使用后,本…

關系數據庫——sql增刪改

數據的插入 插入元祖 --1. 表名后沒有指定屬性列:表示要插入的是一條完整的元組,且屬性列屬性與表定義中的順序一致 insert into student values (201215128, 陳東, 18, 男, IS);--2. 在表明后指定要插入數據的表名及屬性列,屬性列的順序可…

機器學習中的聚類方法總結

聚類定義 定義 聚類就是對大量未知標注 的數據集,按數據 的內在相似性將數據集劃分為多個類別,使 類別內的數據相似度較大而類別間的數據相 似度較小。是無監督的分類方式。 聚類思想 給定一個有N個對象的數據集,構造數據的k 個簇&#x…

學點數學(1)-隨機變量函數變換

隨機變量函數變換本文介紹一維隨機變量函數變換,參考文獻:https://wenku.baidu.com/view/619f74ac3186bceb19e8bbd0.html變換TTT作用于隨機變量XXX,產生隨機變量YYY. T:X?>Y或者寫為yT(x)T:X->Y 或者寫為 yT(x)T:X?>Y或者寫為yT(x…

關系數據庫——關系數據語言

關系 域:一組具有相同數據類型的值的集合(即取值范圍) 笛卡爾積:域上的一種集合運算。結果為一個集合,集合的每一個元素是一個元組,元組的每一個分量來自不同的域。 基數:一個域允許的不同取值…

Python模塊(2)-Numpy 簡易使用教程

Numpy模塊 簡易使用教程1.數組創建2.數組基本屬性-維度、尺寸、數據類型3.數組訪問-索引、切片、迭代4.數組的算術運算-加減乘除、轉置求逆、極大極小5.通用函數-sin,cos,exp,sqrtnp.dot與np.matmul的區別6.數組的合并和分割6.1 np.vstack(),np.hstack()6.2 np.stack()7.list與…

機器學習問題總結(01)

文章目錄1.請描述推薦系統中協同過濾算法CF的原理2.請描述決策樹的原理、過程、終止條件,以及如何防止過擬合2.1決策樹生成算法2.2 剪枝處理(防止過擬合)2.3 停止條件2.4 棵決策樹的生成過程2.5 決策樹的損失函數3.請描述K-means的原理&#…

pthread_attr_init線程屬性

1.線程屬性 線程具有屬性,用pthread_attr_t表示,在對該結構進行處理之前必須進行初始化,在使用后需要對其去除初始化。我們用pthread_attr_init函數對其初始化,用pthread_attr_destroy對其去除初始化。 1. …

Python實例講解 -- 解析xml

Xml代碼 <?xml version"1.0" encoding"utf-8"?> <info> <intro>信息</intro> <list id001> <head>auto_userone</head> <name>Jordy</name> <number&g…

springboot3——Email

maven導入包&#xff1a; <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-mail</artifactId><version>2.1.6.RELEASE</version></dependency> 參數配置&#xff1a; # MailPrope…

python(22)--面向對象1-封裝

python面向對象1面向過程/面向對象2面向對象核心概念-類3類的設計3.1類三要素-類名、屬性、方法3.2面向對象基礎語法3.2.1查看對象的常用方法3.2.2類定義3.2.3創建類對象3.2.4__init__()方法3.2.5 self參數3.2.6類內置方法和屬性_del_()方法--銷毀對象_str_()方法--定制化輸出對…

機器學習問題總結(02)

文章目錄1.stacking模型以及做模型融合的知識1.1 從提交結果中融合1.2 stacking1.3 blending2. 怎樣去優化SVM算法模型的&#xff1f;2.1 SMO優化算法2.2 libsvm 和 Liblinear3.現有底層是tensorflow的keras框架&#xff0c;如果現在有一個tensorflow訓練好的模型&#xff0c;k…

python對操作系統的目錄和文件操作

一、獲取當前目錄下的特定文件列表>>>import glob,os>>>curdir os.getcwd() #獲取當前目錄>>>os.chdir(workdir) #設置當前目錄>>>dir glob.glob(*.dat) #獲取當前目錄的dat文件列表>>>os.chdir(curdir) #…

常見漏洞

Cookie without HttpOnly flag set 如果在Cookie上設置了HttpOnly屬性&#xff0c;則客戶端JavaScript無法讀取或設置Cookie的值。 這種措施通過阻止某些客戶端攻擊&#xff08;例如跨站點腳本&#xff09;&#xff0c;通過阻止它們通過注入的腳本來簡單地捕獲cookie的值&…