CIFAR10/CIFAR100資料集介紹---有Python版本的二進位制資料格式說明
CIFAR-10/CIFAR-100資料集解析
轉載自:https://www.cnblogs.com/cloud-ken/p/8456878.html覺得有用的話,歡迎一起討論相互學習~Follow Me
CIFAR-10和CIFAR-100被標記為8000萬個微小影象資料集的子集。他們由Alex Krizhevsky,Vinod Nair和Geoffrey Hinton收集。
CIFAR-10資料集
CIFAR-10資料集由10個類的60000個32x32彩色影象組成,每個類有6000個影象。有50000個訓練影象和10000個測試影象。
資料集分為五個訓練批次和一個測試批次,每個批次有10000個影象。測試批次包含來自每個類別的恰好1000個隨機選擇的影象。訓練批次以隨機順序包含剩餘影象,但一些訓練批次可能包含來自一個類別的影象比另一個更多。總體來說,五個訓練集之和包含來自每個類的正好5000張影象。
以下是資料集中的類,以及來自每個類的10個隨機影象:
這些類完全相互排斥。汽車和卡車之間沒有重疊。“汽車”包括轎車,SUV,這類東西。“卡車”只包括大卡車。都不包括皮卡車。
airplane/automobile/bird/cat/deer/dog/frog/horse/ship/truck
CIFAR-10下載
資料集佈局
Python / Matlab版本
我將描述資料集的Python版本的佈局。Matlab版本的佈局是相同的。
該存檔包含檔案data_batch_1,data_batch_2,...,data_batch_5以及test_batch。這些檔案中的每一個都是用cPickle生成的Python“pickled”物件。這裡是一個python2例程,它將開啟這樣的檔案並返回一個字典:
def unpickle(file):
import cPickle
with open(file, 'rb') as fo:
dict = cPickle.load(fo)
return dict
下面是一個python3例項
def unpickle(file):
import pickle
with open(file, 'rb') as fo:
dict = pickle.load(fo, encoding='bytes')
return dict
以這種方式載入的每個批處理檔案都包含一個包含以下元素的字典:
資料 - 一個10000x3072 uint8的numpy陣列。陣列的每一行儲存32x32彩色影象即每一行儲存32323=3072個數字資訊。前1024個條目包含紅色通道值,下一個1024個綠色,最後1024個藍色。影象以行優先順序儲存,以便陣列的前32個條目是影象第一行的紅色通道值。
標籤 - 範圍為0-9的10000個數字的列表。索引i處的數字表示陣列資料中第i個影象的標籤。
該資料集包含另一個名為batches.meta的檔案。它也包含一個Python字典物件。它有以下條目:
label_names - 一個10個元素的列表,它為上述標籤陣列中的數字標籤賦予了有意義的名稱。例如,label_names [0] ==“飛機”,label_names [1] ==“汽車”等
二進位制版本
二進位制版本包含檔案data_batch_1.bin,data_batch_2.bin,...,data_batch_5.bin以及test_batch.bin。這些檔案中的每一個格式如下:
<1×標籤> <3072×畫素>
...
<1×標籤> <3072×畫素>
換句話說,第一個位元組是第一個影象的標籤,它是一個0-9範圍內的數字。接下來的3072個位元組是影象畫素的值。前1024個位元組是紅色通道值,下1024個綠色,最後1024個藍色。值以行優先順序儲存,因此前32個位元組是影象第一行的紅色通道值。
每個檔案都包含10000個這樣的3073位元組的“行”影象,但沒有任何分隔行的限制。因此每個檔案應該完全是30730000位元組長。
還有另一個檔案,稱為batches.meta.txt。這是一個ASCII檔案,它將0-9範圍內的數字標籤對映到有意義的類名稱。它僅僅是10個類名的列表,每行一個。第i行的類名稱對應於數字標籤i。
CIFAR-100資料集
這個資料集就像CIFAR-10,除了它有100個類,每個類包含600個影象。,每類各有500個訓練影象和100個測試影象。CIFAR-100中的100個類被分成20個超類。每個影象都帶有一個“精細”標籤(它所屬的類)和一個“粗糙”標籤(它所屬的超類)
以下是CIFAR-100中的類別列表:
| 超類 |類別|
| :-: | :-: |
|水生哺乳動物| 海狸,海豚,水獺,海豹,鯨魚|
|魚| 水族館的魚,比目魚,射線,鯊魚,鱒魚|
|花卉| 蘭花,罌粟花,玫瑰,向日葵,鬱金香|
|食品容器| 瓶子,碗,罐子,杯子,盤子|
|水果和蔬菜| 蘋果,蘑菇,橘子,梨,甜椒|
|家用電器| 時鐘,電腦鍵盤,檯燈,電話機,電視機|
|家用傢俱| 床,椅子,沙發,桌子,衣櫃|
|昆蟲| 蜜蜂,甲蟲,蝴蝶,毛蟲,蟑螂|
|大型食肉動物| 熊,豹,獅子,老虎,狼|
|大型人造戶外用品| 橋,城堡,房子,路,摩天大樓|
|大自然的戶外場景| 雲,森林,山,平原,海|
|大雜食動物和食草動物| 駱駝,牛,黑猩猩,大象,袋鼠|
|中型哺乳動物| 狐狸,豪豬,負鼠,浣熊,臭鼬|
|非昆蟲無脊椎動物| 螃蟹,龍蝦,蝸牛,蜘蛛,蠕蟲|
|人| 寶貝,男孩,女孩,男人,女人|
|爬行動物| 鱷魚,恐龍,蜥蜴,蛇,烏龜|
|小型哺乳動物| 倉鼠,老鼠,兔子,母老虎,松鼠|
|樹木| 楓樹,橡樹,棕櫚,松樹,柳樹|
|車輛1| 自行車,公共汽車,摩托車,皮卡車,火車|
|車輛2| 割草機,火箭,有軌電車,坦克,拖拉機|
Superclass | Classes |
---|---|
aquatic | mammals beaver, dolphin, otter, seal, whale |
fish | aquarium fish, flatfish, ray, shark, trout |
flowers | orchids, poppies, roses, sunflowers, tulips |
food | containers bottles, bowls, cans, cups, plates |
fruit and vegetables | apples, mushrooms, oranges, pears, sweet peppers |
household electrical devices | clock, computer keyboard, lamp, telephone, television |
household | furniture bed, chair, couch, table, wardrobe |
insects | bee, beetle, butterfly, caterpillar, cockroach |
large carnivores | bear, leopard, lion, tiger, wolf |
large man-made outdoor things | bridge, castle, house, road, skyscraper |
large natural outdoor scenes | cloud, forest, mountain, plain, sea |
large omnivores and herbivores | camel, cattle, chimpanzee, elephant, kangaroo |
medium-sized mammals | fox, porcupine, possum, raccoon, skunk |
non-insect invertebrates | crab, lobster, snail, spider, worm |
people | baby, boy, girl, man, woman |
reptiles | crocodile, dinosaur, lizard, snake, turtle |
small mammals | hamster, mouse, rabbit, shrew, squirrel |
trees | maple, oak, palm, pine, willow |
vehicles 1 | bicycle, bus, motorcycle, pickup truck, train |
vehicles 2 | lawn-mower, rocket, streetcar, tank, tractor |
CIFAR-100下載
資料集佈局
Python/matlab版本
python和Matlab版本的佈局與CIFAR-10相同.
二進位制版本
CIFAR-100的二進位制版本與CIFAR-10的二進位制版本相似,只是每個影象都有兩個標籤位元組(粗略和細小)和3072畫素位元組,所以二進位制檔案如下所示:
<1 x粗標籤> <1 x精標籤> <3072 x畫素>
...
<1 x粗標籤> <1 x精標籤> <3072 x畫素>
相關文章
- 複雜二進位制資料
- JavaScript 讀寫二進位制資料JavaScript
- 利用vstruct解析二進位制資料Struct
- KITTI-二進位制點雲資料集使用筆記筆記
- C++資料格式化5 - uint轉換成十六進位制字串&二進位制的data列印成十六進位制字串C++UI字串
- Redis中快取二進位制資料Redis快取
- MNIST資料集介紹
- nuPlan資料集介紹
- Cora 資料集介紹
- 使用POST方法傳輸二進位制資料
- java之二進位制與資料型別Java資料型別
- 『Note』基於斜二進位制的資料結構資料結構
- mysql二進位制日誌的引數介紹MySql
- Python全棧MongoDB資料庫(聚合、二進位制、GridFS、pymongo模組)Python全棧MongoDB資料庫
- 二進位制安全_C語言中資料型別C語言資料型別
- 03二進位制包安裝與介紹
- 大資料崗位介紹-引子大資料
- golang: 給二進位制檔案增加版本資訊Golang
- python--進位制轉換和資料交換Python
- 前端進階:二進位制資料的操控—-附專案程式碼前端
- 前端進階:二進位制資料的操控----附專案程式碼前端
- 資料集的使用-以CIFAR10為例
- WebSocket系列之JavaScript數字資料如何轉換為二進位制資料WebJavaScript
- Bootstrap Blazor 元件介紹 Table (三)列資料格式功能介紹bootBlazor元件
- 國產資料庫:達夢資料庫的幾個版本介紹資料庫
- 資料轉換-16進位制字元字元
- 帝國cms所有資料庫欄位說明資料庫
- 二進位制求5個1的格式。。。。
- mssql sqlserver 可以儲存二進位制資料的欄位型別詳解SQLServer型別
- websocket 二進位制資料傳輸基礎準備工作Web
- C語言02-常量、二進位制、資料型別C語言資料型別
- WebSocket系列之二進位制資料設計與傳輸Web
- C++資料格式化6 - uint轉換成二六進位制字串C++UI字串
- c++ 16進位制資料轉doubleC++
- 資料結構–進位制(任意)轉換資料結構
- 教你如何將二進位制檔案匯入到資料庫資料庫
- 資料分頁說明
- 資料庫系列:MySQL InnoDB鎖機制介紹資料庫MySql