CIFAR數據集解讀


CIFAR-10 數據集

CIFAR數據集由 Alex Krizhevsky,Vinod Nair 和 Geoffrey Hinton 收集整理自8000萬張微型圖像數據集,其中CIFAR數據集又根據所涉及的分類對象數量,可分為CIFAR-10和CIFAR-100。該數據集主要用於深度學習的圖像分類,目前已被廣泛應用。

CIFAR數據集官網:http://www.cs.toronto.edu/~kriz/cifar.html

基本介紹

如上圖所示,CIFAR-10數據集包含了飛機、汽車、鳥等10個類別物體的32×32大小的彩色圖片,每個類別有6000張圖,計算可知,整個數據集一共有 6000×10=60000 張圖。其中,automobiles (汽車)和 trucks(卡車)盡管都屬於車類,但二者在分類時屬於不同的類,不存在重疊。汽車主要包括轎車、越野車之類的車;而卡車則只包含大卡車,皮卡車這樣的車則不屬於上述任意類別。

數據集划分了訓練集和測試集。訓練集一共50000張圖,每10000張作為一個批次(batch),每個批次包含了來自10個類別的1000張圖片。訓練集的批次是隨機抽取的各個類中的圖像,因此存在某一個類的圖像數量多於另一個類的圖像數量。測試集一共10000張圖,也包含了隨機從每個類中抽取的1000張圖。

下載

CIFAR-10 數據集提供了供 python、matlab、c 讀取的數據文件,具體如下:

版本 文件大小 MD5檢驗碼
CIFAR-10 python version 163 MB c58f30108f718f92721af3b95e74349a
CIFAR-10 Matlab version 175 MB 70270af85842c9e89bb428ec9976c926
CIFAR-10 binary version (suitable for C programs) 162 MB c32a1d4ab5d03f1284b67883e8d87530

數據解讀

python和matlab版本

對於python和matlab版本,下載得到文件解壓后,會得到如下結構的文件:

即已經分好了的五個batch數據以及一個測試batch數據。

這些文件中的每一個都是用 cPickle 生成的 Python“ pickle”對象。 下面是一個 python 2例程,它將打開這樣一個文件並返回一個字典:

def unpickle(file):
    import cPickle
    with open(file, 'rb') as fo:
        dict = cPickle.load(fo)
    return dict

對於python 3 而言:

def unpickle(file):
    import pickle
    with open(file, 'rb') as fo:
        dict = pickle.load(fo, encoding='bytes')
    return dict

利用上面這種方式讀取批數據后,將返回以下元素的字典:

  • data

    這是一個10000×3072的numpy數組,數據格式為unit8。其中每一行存儲了一張32×32的彩色圖像。即對於3072個值,每1024個值(32×32=1024)為圖片的一個通道數據,一共按順序包含了紅綠藍三個通道。

  • labels

    這是一個長度為10000的數字列表,數字的取值范圍為0到9之間的整數,表示圖片所對應的標簽值。

此外,對於 batches.meta 文件,讀取后將返回字典:

  • label_names

    這是一個10元素的列表,用於根據標簽值獲取對應的標簽名字,例如:

    label_names[0] == "airplane", 
    label_names[1] == "automobile
    

二進制版本

二進制版本的文件解壓后,將得到 data_batch_1.bin, data_batch_2.bin, ..., data_batch_5.bin,以及 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-10類似,CIFAR-100包含了100個類別的物體,其中每個類別有600張圖片。每個類取500張作為訓練圖像,100張作為測試圖像。

在CIFAR-100 中,100各類別可以分類父類(Superclass)和子類(Classes)。一共有20個父類,其下又分子類。具體如下:

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

下載

版本 文件大小 MD5校驗碼
CIFAR-100 python version 161 MB eb9058c3a382ffc7106e4002c42a8d85
CIFAR-100 Matlab version 175 MB 6a4bfa1dcd5c9453dda6bb54194911f4
CIFAR-100 binary version (suitable for C programs) 161 MB 03b5dce01913d631647c71ecec9e9cb8

數據解讀

python和matlab版本

這里和CIFAR-10的類似,不多做解釋。

二進制版本

CIFAR-100的二進制版本與 CIFAR-10的二進制版本相似,只是每個圖像有兩個標簽字節(粗和細)和3072個像素字節,因此二進制文件看起來像這樣:

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


免責聲明!

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



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