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()

 

arrow
arrow

    楓綺 發表在 痞客邦 留言(0) 人氣()