MNIST的資料集由0~9數字所組成,
The MNIST Dataset: 點擊我
進入上方提供的網址可找到資料集如下:
直接下載_訓練影像(.gz): 點擊我
直接下載_訓練標記檔(.gz): 點擊我
直接下載_測試影像(.gz): 點擊我
直接下載_測試標記檔(.gz): 點擊我
其中訓練資料為60000筆,
測試資料為10000筆,
影像大小為 28x28,
本版把MNIST資料集抽取出後轉換影像格式,
字形樣式如下:
0 | ![]() |
1 | ![]() |
2 | ![]() |
3 | ![]() |
4 | ![]() |
5 | ![]() |
6 | ![]() |
7 | ![]() |
8 | ![]() |
9 | ![]() |
EMNIST則為MNIST的擴充版,
此資料集內加入了英文字母的手寫,
The EMNIST Dataset: 點擊我
直接下載所有Dataset(.gz): 點擊我
Matlab版本的Dataset: 點擊我
EMNIST字形樣式如下:
下方提供讀取載入資料集的方法:
第一種方法: (手動解壓縮.gz檔)
import numpy as np
import struct
train_img_file = 'emnist-balanced-train-images-idx3-ubyte'
binfile = open(train_img_file, 'rb')
buf = binfile.read()
index = 0
magic, numImgs, numRows, numCols = struct.unpack_from('>IIII', buf, index)
index += struct.calcsize('>IIII')
for i in range(numImgs): #讀取所有影像
im = struct.unpack_from('>784B', buf, index)
index += struct.calcsize('>784B')
im = np.array(im) #取得影像資料
binfile.close()
第二種方法: (直接讀取.gz檔)
import numpy as np
import struct
import gzip
f = gzip.open('emnist-balanced-train-images-idx3-ubyte.gz')
buf = f.read()
index = 0
magic, numImgs, numRows, numCols = struct.unpack_from('>IIII', buf, index)
index += struct.calcsize('>IIII')
for i in range(numImgs): #讀取所有影像
im = struct.unpack_from('>784B', buf, index)
index += struct.calcsize('>784B')
im = np.array(im) #取得影像資料
f.close()