翻譯自: 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像素>