參考文獻
CIFAR-10/CIFAR-100數據集html
CIFAR-10和CIFAR-100被標記爲8000萬個微小圖像數據集的子集。他們由Alex Krizhevsky,Vinod Nair和Geoffrey Hinton收集。python
CIFAR-10數據集由10個類的60000個32x32彩色圖像組成,每一個類有6000個圖像。有50000個訓練圖像和10000個測試圖像。
數據集分爲五個訓練批次和一個測試批次,每一個批次有10000個圖像。測試批次包含來自每一個類別的剛好1000個隨機選擇的圖像。訓練批次以隨機順序包含剩餘圖像,但一些訓練批次可能包含來自一個類別的圖像比另外一個更多。整體來講,五個訓練集之和包含來自每一個類的正好5000張圖像。
如下是數據集中的類,以及來自每一個類的10個隨機圖像:git
這些類徹底相互排斥。汽車和卡車之間沒有重疊。「汽車」包括轎車,SUV,這類東西。「卡車」只包括大卡車。都不包括皮卡車。
airplane/automobile/bird/cat/deer/dog/frog/horse/ship/truckgithub
我將描述數據集的Python版本的佈局。Matlab版本的佈局是相同的。
該存檔包含文件data_batch_1,data_batch_2,...,data_batch_5以及test_batch。這些文件中的每個都是用cPickle生成的Python「pickled」對象。這裏是一個python2例程,它將打開這樣的文件並返回一個字典:app
def unpickle(file): import cPickle with open(file, 'rb') as fo: dict = cPickle.load(fo) return dict
下面是一個python3實例ide
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-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 python版本
CIFAR-100 Matlab版本
CIFAR-100二進制版本(適用於C程序)
python和Matlab版本的佈局與CIFAR-10相同.
CIFAR-100的二進制版本與CIFAR-10的二進制版本類似,只是每一個圖像都有兩個標籤字節(粗略和細小)和3072像素字節,因此二進制文件以下所示:
<1 x粗標籤> <1 x精標籤> <3072 x像素> ... <1 x粗標籤> <1 x精標籤> <3072 x像素>