CIFAR10/CIFAR100資料集介紹---有Python版本的二進位制資料格式說明

馬衛飛發表於2018-06-17

CIFAR-10/CIFAR-100資料集解析

轉載自:https://www.cnblogs.com/cloud-ken/p/8456878.html

覺得有用的話,歡迎一起討論相互學習~Follow Me

參考文獻
CIFAR-10/CIFAR-100資料集

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個隨機影象:

CIFAR-10.png
這些類完全相互排斥。汽車和卡車之間沒有重疊。“汽車”包括轎車,SUV,這類東西。“卡車”只包括大卡車。都不包括皮卡車。
airplane/automobile/bird/cat/deer/dog/frog/horse/ship/truck

CIFAR-10下載

CIFAR-10 python版本
CIFAR-10 Matlab版本
CIFAR-10二進位制版本(適用於C程式)

資料集佈局

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.png

CIFAR-100資料集

這個資料集就像CIFAR-10,除了它有100個類,每個類包含600個影象。,每類各有500個訓練影象和100個測試影象。CIFAR-100中的100個類被分成20個超類。每個影象都帶有一個“精細”標籤(它所屬的類)和一個“粗糙”標籤(它所屬的超類)
以下是CIFAR-100中的類別列表:
| 超類 |類別|
| :-: | :-: |
|水生哺乳動物| 海狸,海豚,水獺,海豹,鯨魚|
|魚| 水族館的魚,比目魚,射線,鯊魚,鱒魚|
|花卉| 蘭花,罌粟花,玫瑰,向日葵,鬱金香|
|食品容器| 瓶子,碗,罐子,杯子,盤子|
|水果和蔬菜| 蘋果,蘑菇,橘子,梨,甜椒|
|家用電器| 時鐘,電腦鍵盤,檯燈,電話機,電視機|
|家用傢俱| 床,椅子,沙發,桌子,衣櫃|
|昆蟲| 蜜蜂,甲蟲,蝴蝶,毛蟲,蟑螂|
|大型食肉動物| 熊,豹,獅子,老虎,狼|
|大型人造戶外用品| 橋,城堡,房子,路,摩天大樓|
|大自然的戶外場景| 雲,森林,山,平原,海|
|大雜食動物和食草動物| 駱駝,牛,黑猩猩,大象,袋鼠|
|中型哺乳動物| 狐狸,豪豬,負鼠,浣熊,臭鼬|
|非昆蟲無脊椎動物| 螃蟹,龍蝦,蝸牛,蜘蛛,蠕蟲|
|人| 寶貝,男孩,女孩,男人,女人|
|爬行動物| 鱷魚,恐龍,蜥蜴,蛇,烏龜|
|小型哺乳動物| 倉鼠,老鼠,兔子,母老虎,松鼠|
|樹木| 楓樹,橡樹,棕櫚,松樹,柳樹|
|車輛1| 自行車,公共汽車,摩托車,皮卡車,火車|
|車輛2| 割草機,火箭,有軌電車,坦克,拖拉機|

SuperclassClasses
aquaticmammals beaver, dolphin, otter, seal, whale
fishaquarium fish, flatfish, ray, shark, trout
flowersorchids, poppies, roses, sunflowers, tulips
foodcontainers bottles, bowls, cans, cups, plates
fruit and vegetablesapples, mushrooms, oranges, pears, sweet peppers
household electrical devicesclock, computer keyboard, lamp, telephone, television
householdfurniture bed, chair, couch, table, wardrobe
insectsbee, beetle, butterfly, caterpillar, cockroach
large carnivoresbear, leopard, lion, tiger, wolf
large man-made outdoor thingsbridge, castle, house, road, skyscraper
large natural outdoor scenescloud, forest, mountain, plain, sea
large omnivores and herbivorescamel, cattle, chimpanzee, elephant, kangaroo
medium-sized mammalsfox, porcupine, possum, raccoon, skunk
non-insect invertebratescrab, lobster, snail, spider, worm
peoplebaby, boy, girl, man, woman
reptilescrocodile, dinosaur, lizard, snake, turtle
small mammalshamster, mouse, rabbit, shrew, squirrel
treesmaple, oak, palm, pine, willow
vehicles 1bicycle, bus, motorcycle, pickup truck, train
vehicles 2lawn-mower, rocket, streetcar, tank, tractor

CIFAR-100下載

CIFAR-100 python版本
CIFAR-100 Matlab版本
CIFAR-100二進位制版本(適用於C程式)

資料集佈局

Python/matlab版本

python和Matlab版本的佈局與CIFAR-10相同.

二進位制版本

CIFAR-100的二進位制版本與CIFAR-10的二進位制版本相似,只是每個影象都有兩個標籤位元組(粗略和細小)和3072畫素位元組,所以二進位制檔案如下所示:

<1 x粗標籤> <1 x精標籤> <3072 x畫素>
...
<1 x粗標籤> <1 x精標籤> <3072 x畫素>

相關文章