CIFAR10/CIFAR100數據集介紹


CIFAR-10/CIFAR-100數據集解析

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


我的微博我的github我的B站

參考文獻
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個隨機圖像:

在這里插入圖片描述
這些類完全相互排斥。汽車和卡車之間沒有重疊。“汽車”包括轎車,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數據集

這個數據集就像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下載

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像素>


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM