歡迎來到這個關於MNIST數據集的教程。在這個教程中,我們將學習什麼是MNIST數據集,如何在Python中導入它,以及如何使用matplotlib進行繪圖。
MNIST數據集是什麼?
MNIST數據集是一個包含大量手寫數字的數據集。它在圖像處理領域非常受歡迎,通常用於機器學習算法的基準測試。
MNIST是Modified National Institute of Standards and Technology database(修改過的國家標準與技術研究所數據庫)的縮寫。
MNIST包含了一組70,000個28 x 28的手寫數字圖像,範圍從0到9。
該數據集已經被分成了訓練集和測試集,我們稍後會看到這一點。
有關MNIST的更多信息,請參閱其維基百科頁面。我們將從Keras中導入數據集。
讓我們先將數據集加載到我們的Python筆記本中。
從Keras加載MNIST
我們首先需要從Keras模組導入MNIST數據集。
我們可以使用以下程式碼來完成:
from keras.datasets import mnist
現在我們將訓練集和測試集加載到不同的變量中。
(train_X, train_y), (test_X, test_y) = mnist.load_data()
讓我們找出訓練集和測試集中有多少圖像。換句話說,讓我們試著找出這個數據集的分割比例。
要了解更多有關分割比例的信息,請參考此教程:如何將數據分割為訓練集和測試集。
為了找出分割比例,我們將打印所有向量的形狀。
print('X_train: ' + str(train_X.shape))
print('Y_train: ' + str(train_y.shape))
print('X_test: ' + str(test_X.shape))
print('Y_test: ' + str(test_y.shape))
輸出:
X_train: (60000, 28, 28)
Y_train: (60000,)
X_test: (10000, 28, 28)
Y_test: (10000,)
我們可以看到訓練集中有60,000張圖像,測試集中有10,000張圖像。
我們的訓練向量的維度是(60000, 28, 28),這是因為有60,000個灰度圖像,尺寸為28×28。
加載MNIST數據集的完整代碼
這是本節的完整代碼:
from keras.datasets import mnist
#載入資料集
(train_X, train_y), (test_X, test_y) = mnist.load_data()
#列印向量的形狀
print('X_train: ' + str(train_X.shape))
print('Y_train: ' + str(train_y.shape))
print('X_test: ' + str(test_X.shape))
print('Y_test: ' + str(test_y.shape))
讓我們學習如何繪製這個資料集。
使用 matplotlib 繪製 MNIST 資料集
總是將您正在處理的資料集繪製出來是一個好主意。這將讓您對您正在處理的資料有一個良好的了解。
作為一名負責任的資料科學家,將資料集繪製出來應該是您的第一步。
要繪製資料集,請使用以下程式碼片段:
from matplotlib import pyplot
for i in range(9):
pyplot.subplot(330 + 1 + i)
pyplot.imshow(train_X[i], cmap=pyplot.get_cmap('gray'))
pyplot.show()
輸出:

這就是我們的資料看起來的樣子!
想像一下,有 70,000 張像這些的圖片。這就是資料集中包含的內容。它之所以如此龐大,是資料集受歡迎的原因之一。
手寫辨識的問題,無論多麼瑣碎,現在都已經過時了。有必要有一個更具挑戰性的版本來取代 MNSIT 資料集。
是否有更具挑戰性的 MNIST 資料集?
是的,有的。Fashion MNIST 資料集。
時尚 MNIST 數據集
時尚 MNIST 數據集是舊的 MNIST 數據集的一個更具挑戰性的替代品。
該數據集包含 70,000 張 10 種服裝類型的小正方形 28×28 像素灰度圖像,如鞋子、T 恤、連衣裙等。
要了解如何導入並繪製時尚 MNIST 數據集,請閱讀此教程。
結論
本教程介紹了如何在 Python 中導入和繪製 MNIST 數據集。我們還討論了該數據集的一個更具挑戰性的替代品,即時尚 MNIST 集。希望您和我們一起學習愉快!
Source:
https://www.digitalocean.com/community/tutorials/mnist-dataset-in-python