CIFAR-10 dataset 的下載與使用


 

基本信息

CIFAR-10 是一個包含60000張圖片的數據集。其中每張照片為32*32的彩色照片,每個像素點包括RGB三個數值,數值范圍 0 ~ 255。

所有照片分屬10個不同的類別,分別是 'airplane', 'automobile', 'bird', 'cat', 'deer', 'dog', 'frog', 'horse', 'ship', 'truck'

其中五萬張圖片被划分為訓練集,剩下的一萬張圖片屬於測試集。

下載數據集

打開下面的鏈接進入官網下載

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

下載完成后先解壓縮,之后會得到如下幾個文件

data_batch_1 ~ data_batch_5 是划分好的訓練數據,每個文件里包含10000張圖片,test_batch 是測試集數據,也包含10000張圖片。他們的結構是一樣的,下面就用 data_batch_1 作為例子進行說明。

讀取數據

復制代碼
import pickle

def load_file(filename):
    with open(filename, 'rb') as fo:
        data = pickle.load(fo, encoding='latin1')
    return data
復制代碼

首先定義讀取數據的函數,這幾個文件都是通過 pickle 產生的,所以在讀取的時候也要用到這個包。

這里面返回的data是一個字典,先看看這個字典里面有哪些鍵吧。

data = load_file('test_batch')
print(data.keys())

輸出結果

1
dict_keys([ 'batch_label' 'labels' 'data' 'filenames' ])
  • batch_label 

  對應的值是一個字符串,用來表明當前文件的一些基本信息。  

  如果是 data_batch_1 這個文件,里面的值就是

training batch 1 of 5

  如果是 test_batch 這個文件,里面的值就是

testing batch 1 of 1
  • labels

  對應的值是一個長度為10000的列表,每個數字取值范圍 0~9,代表當前圖片所屬類別

  • data

  10000 * 3072 的二維數組,每一行代表一張圖片的像素值。(32*32*3=3072)

  • filenames

  長度為10000的列表,里面每一項是代表圖片文件名的字符串。


 

batches.meta 文件可以用相同的方法讀取,里面存的是一些基本信息。

  • num_cases_per_batch

  10000

  • label_names
['airplane', 'automobile', 'bird', 'cat', 'deer', 'dog', 'frog', 'horse', 'ship', 'truck']
  • num_vis

  3072


免責聲明!

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



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