CIFAR-10和CIFAR-100數據集說明

翻譯自: http://www.cs.toronto.edu/~kriz/cifar.html

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,這類東西。“卡車”只包括大卡車。都不包括皮卡車。

CIFAR-10下載

共有三個版本

CIFAR-10 python版本  (http://www.cs.toronto.edu/~kriz/cifar-10-python.tar.gz)
CIFAR-10 Matlab版本  (http://www.cs.toronto.edu/~kriz/cifar-10-matlab.tar.gz
CIFAR-10二進制版本(適用於C程序)(http://www.cs.toronto.edu/~kriz/cifar-10-binary.tar.gz)
Baseline results (基線結果?還不是很懂)

你可以在cuda-convert的項目頁面上找到此數據集上的一些基線可複製的結果。這個結果是由CNN卷積神經網絡得到的。簡要的說,在沒有數據擴充的情況下,測試誤差爲18%,反之爲11%。
(emmm這段感覺關係不大。。。)

數據集佈局

Python/Matlab 版本
該數據集文件包含data_batch1……data_batch5,和test_batch。他們都是由cPickle庫產生的序列化後的對象(關於pickle,移步https://docs.python.org/3/library/pickle.html)。這裏給出python2和python3的例程,他可以打開這樣的pkl文件,返回一個字典結構的數據:

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

在這裏插入圖片描述

這樣的話,每個batch文件包含一個字典,每個字典包含有:

  • Data
      一個100003072的numpy數組(numpy:https://docs.scipy.org/doc/numpy-dev/user/quickstart.html ) , 數據類型是無符號整形uint8。這個數組的每一行存儲了3232大小的彩色圖像(32323通道=3072)。前1024個數是red通道,然後分別是green,blue。另外,圖像是以行的順序存儲的,也就是說前32個數就是這幅圖的像素矩陣的第一行。

  • labels
      一個範圍在0-9的含有10000個數的列表(一維的數組)。第i個數就是第i個圖像的類標。

數據集除了6個batch之外,還有一個文件batches.meta。它包含一個python字典對象,內容(entries)有:

  • label_names
    一個包含10個元素的列表,每一個描述了labels array中每個數字對應類標的名字。比如:label_names[0] == “airplane”, label_names[1] == “automobile”

二進制版本
該版本包含5個訓練批data_batch_1.bin, data_batch_2.bin, …, data_batch_5.bin,1個測試批test_batch.bin。他們的格式都是:

<1 x label><3072 x pixel>
...
<1 x label><3072 x pixel> 

換句話說,第一個字節是第一個圖像的標籤,它是一個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像素>
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章