MNIST數據集下載及可視化


MNIST數據集介紹

MNIST數據集官網:http://yann.lecun.com/exdb/mnist/

MNIST數據庫是非常經典的一個數據集,就像你學編程起初寫一個“Hello Word”的程序一樣,學Deep Learning你就會寫識別MNIST數據集的Model。

MNIST數據集是由0〜9手寫數字圖片和數字標簽所組成的,由60000個訓練樣本和10000個測試樣本組成,每個樣本都是一張28 * 28像素的灰度手寫數字圖片。如下圖所示。

圖片

MNIST數據庫一共有四個文件案,分別為

1. train-images-idx3-ubyte.gz:訓練集圖片(9912422字節),55000張訓練集,5000張驗證集

2. train-labels-idx1-ubyte.gz:訓練集圖片對應的標簽(28881字節),

3. t10k-images-idx3-ubyte .gz:測試集圖片(1648877字節),10000張圖片

4. t10k-labels-idx1-ubyte.gz:測試集圖片對應的標簽(4542字節)

圖片是指0〜9手寫數字圖片,而標簽則是對應該圖片之實際數字。

MNIST 數據集下載及可視化

TensorFlow提供了一個庫可以對MNIST數據集進行下載和解壓。具體的是使用TensorFlow中input_data.py腳本來讀取數據及標簽,使用這種方式時,可以不用事先下載好數據集,它會自動下載並存放到你指定的位置。具體程序如下所示:

#!/usr/bin/env python
# -*- coding:utf-8 -*-
import tensorflow as tf
from tensorflow.examples.tutorials.mnist import input_data
import matplotlib.pyplot as plt
# MNIST_data指的是存放數據的文件夾路徑,one_hot=True 為采用one_hot的編碼方式編碼標簽
mnist = input_data.read_data_sets('../datasets/MNIST_data/', one_hot=True)
# load data
train_X = mnist.train.images
train_Y = mnist.train.labels
print(train_X.shape, train_Y.shape)   # 輸出訓練集樣本和標簽的大小
# 查看數據,例如訓練集中第一個樣本的內容和標簽
print(train_X[0])       # 是一個包含784個元素且值在[0,1]之間的向量
print(train_Y[0])
# 可視化樣本,下面是輸出了訓練集中前4個樣本
fig, ax = plt.subplots(nrows=2, ncols=2, sharex='all', sharey='all')
ax = ax.flatten()
for i in range(4):
    img = train_X[i].reshape(28, 28)
    # ax[i].imshow(img,cmap='Greys')
    ax[i].imshow(img)
ax[0].set_xticks([])
ax[0].set_yticks([])
plt.tight_layout()
plt.show()

運行結果為:

輸出訓練樣本和標簽的大小
(55000, 784) (55000, 10)
查看第一個樣本的數據(數據很多,做了部分省略):
[0.         0.         0.         0.3803922  0.37647063 0.3019608
 0.46274513 0.2392157  0.         0.         0.         0.]
 
print("查看第一個樣本的標簽"):
[0. 0. 0. 0. 0. 0. 0. 1. 0. 0.]

訓練集中前4個樣本圖片顯示:

圖片

計算機視覺聯盟 報道 | 公眾號 CVLianMeng


免責聲明!

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



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