MNIST數據集下載及可視化

MNIST數據集介紹

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

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字節),code

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

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

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

MNIST 數據集下載及可視化

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

#!/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

相關文章
相關標籤/搜索