MNIST數據庫
可從此頁面獲得的MNIST手寫數字數據庫的訓練集爲60,000個示例,而測試集爲10,000個示例。它是NIST可提供的更大集合的子集。這些數字已進行尺寸規格化,並在固定尺寸的圖像中居中。
對於那些想在實際數據上嘗試學習技術和模式識別方法而又花最少的精力進行預處理和格式化的人來說,這是一個很好的數據庫。
該站點上有四個文件:
train-images-idx3-ubyte.gz:訓練集圖像(9912422字節)
train-labels-idx1-ubyte.gz:訓練集標籤( 28881字節)
t10k-images-idx3-ubyte.gz:測試集圖像(1648877字節) )
t10k-labels-idx1-ubyte.gz:測試集標籤(4542字節)
也可以去我的csdn資源上下載:MNIST數據集
請注意,您的瀏覽器可能會在不告知您的情況下解壓縮這些文件。如果您下載的文件的大小大於上述文件的大小,則說明您的瀏覽器已將其解壓縮。只需將它們重命名即可刪除.gz擴展名。有人問我“我的應用程序無法打開您的圖像文件”。這些文件不是任何標準圖像格式。您必須編寫自己的程序(非常簡單)才能閱讀它們。文件格式在此頁面底部描述。
將來自NIST的原始黑白(雙水平)圖像尺寸標準化爲適合20x20像素的框,同時保留其長寬比。作爲歸一化算法使用的抗鋸齒技術的結果,所得圖像包含灰度級。通過計算像素的質心並平移圖像以將該點定位在28x28場的中心,從而將圖像定位在28x28圖像的中心。
使用某些分類方法(尤其是基於模板的方法,例如SVM和K最近鄰),當數字以邊界框而不是質心爲中心時,錯誤率會提高。如果進行這種預處理,則應在出版物中進行報告。
MNIST數據庫由NIST的特殊數據庫3和特殊數據庫1構成,其中包含手寫數字的二進制圖像。NIST最初將SD-3指定爲訓練集,將SD-1指定爲測試集。但是,SD-3比SD-1更乾淨,更容易識別。可以從SD-3是在人口普查局員工中收集而SD-1是在高中學生中收集的事實中找到其原因。從學習實驗中得出明智的結論,要求結果獨立於完整樣本集中訓練集和測試的選擇。因此,有必要通過混合NIST的數據集來構建新的數據庫。
MNIST訓練集由SD-3的30,000個模式和SD-1的30,000個模式組成。我們的測試集由SD-3的5,000個模式和SD-1的5,000個模式組成。60,000種模式訓練集包含來自大約250位作者的示例。我們確保訓練集和測試集的作者集不相交。
SD-1包含由500位不同作者編寫的58,527位數字圖像。與SD-3不同,在SD-3中,來自每個寫入器的數據塊按順序出現,而SD-1中的數據則被加密。SD-1的寫入者身份可用,我們使用此信息來對寫入者進行解讀。然後,我們將SD-1分爲兩部分:由前250位作者編寫的字符進入了我們的新培訓集。其餘的250名作者被放置在我們的測試集中。因此,我們有兩組,每組有近30,000個示例。新的訓練集已完成,其中包含來自SD-3的足夠示例(從模式0開始),從而形成了60,000套完整的訓練模式。同樣,新的測試集以SD-3示例(從模式#35,000開始)完成,從而形成了具有60,000個測試模式的全套軟件。僅有10,000張測試圖像的一部分(SD-1和5中的5,000張,該站點上提供SD-3中的000)。完整的60,000個樣本訓練集可用。
MNIST數據庫的文件格式
數據以非常簡單的文件格式存儲,旨在存儲矢量和多維矩陣。此格式的常規信息在此頁的末尾給出,但是您無需閱讀即可使用數據文件。
文件中的所有整數都以大多數非Intel處理器使用的MSB優先(高端)格式存儲。英特爾處理器和其他低端計算機的用戶必須翻轉標頭的字節。
有4個文件:
train-images-idx3-ubyte:訓練集圖像
train-labels-idx1-ubyte:訓練集標籤
t10k-images-idx3-ubyte:測試集圖像
t10k-labels-idx1-ubyte:測試集標籤
訓練集包含60000個示例,測試集包含10000個示例。
測試集的前5000個示例來自原始的NIST訓練集。最後的5000個來自原始的NIST測試集。前5000個比後5000個更乾淨,更容易。
訓練設置標籤文件(train-labels-idx1-ubyte):
[偏移] [類型] [值] [描述]
0000 32位整數0x00000801(2049)幻數(MSB優先)
0004 32位整數60000項數
0008無符號字節?標籤
0009無符號字節 標籤
........
xxxx無符號字節?? 標籤
標籤值爲0到9。
訓練集圖像文件(train-images-idx3-ubyte):
[偏移] [類型] [值] [描述]
0000 32位整數0x00000803(2051)幻數
0004 32位整數60000圖片數
0008 32位整數28行數
0012 32位整數28列數
0016無符號字節? ?像素
0017無符號字節 像素
........
xxxx無符號字節?? 像素點
像素按行組織。像素值爲0到255。0表示背景(白色),255表示前景(黑色)。
測試集標籤文件(t10k-labels-idx1-ubyte):
[偏移] [類型] [值] [描述]
0000 32位整數0x00000801(2049)幻數(MSB優先)
0004 32位整數10000項數
0008無符號字節?標籤
0009無符號字節 標籤
........
xxxx無符號字節?? 標籤
標籤值爲0到9。
測試集圖像文件(t10k-images-idx3-ubyte):
[偏移] [類型] [值] [描述]
0000 32位整數0x00000803(2051)幻數
0004 32位整數10000圖像數
0008 32位整數28行數
0012 32位整數28列數
0016無符號字節? ?像素
0017無符號字節 像素
........
xxxx無符號字節?? 像素點
像素按行組織。像素值爲0到255。0表示背景(白色),255表示前景(黑色)。
IDX文件格式
IDX文件格式是用於各種數值類型的向量和多維矩陣的一種簡單格式。
基本格式是
幻數
尺寸0
尺寸1
尺寸2尺寸
.....
尺寸N
數據
幻數是整數(MSB在前)。前2個字節始終爲0。
第三個字節編碼數據的類型:
0x08:無符號字節
0x09:帶符號字節
0x0B:短(2個字節)
0x0C:int(4個字節)
0x0D:浮點(4個字節)
0x0E:雙(8個字節)
第4個字節對向量/矩陣的維數進行編碼:1表示矢量,2表示矩陣...
每個維度的大小均爲4字節整數(像大多數非Intel處理器一樣,MSB在前,高字節在前)。
數據像存儲在C數組中一樣存儲,即最後一維的索引變化最快。