MNIST多圖顯示--Python練習

在學習TensorFlow框架時,提到用MNIST手寫數字數據庫進行練習,爲了更直觀看下里面的數據到底長啥樣,用OpenCV(cv2)中的imshow函數來進行顯示。數據庫

默認已經安裝: numpy、tensorflow、cv2框架

1--首先是根據Tensorflow官網的方法得到數據庫:函數

1 from tensorflow.examples.tutorials.mnist import input_data
2 mnist = input_data.read_data_sets("MNIST_data/", one_hot=True)

如今mnist對象已經擁有MNIST數據庫的訓練集和測試集。學習

2--進行單張顯示比較容易,以下代碼:測試

 

1 import cv2
2 # display one database image
3 im = mnist.test.images[0].reshape(28, 28)
4 cv2.imshow("demo", im)
5 cv2.waitKey(0)
6 cv2.destroyAllWindows()

 

顯示結果爲:spa

3--單張顯示太單調(圖像大小28x28),能夠嘗試多張網格排列顯示。3d

  • 起先考慮從數據庫中取出100張,而後根據取出順序肯定在哪行哪列,最後合成大圖,但根據順序直接肯定該圖像位置有點困難
  • 換個思路:先肯定網格位置,再從數據庫中選取一張插入,彷佛簡單了許多

 代碼以下:code

import cv2
import numpy as np

#per row 10 patches, per col 10 patches
BigIm = np.zeros((280, 280))
index = 0
for i in range(10):
    for j in range(10):
        temp = mnist.train.images[index].reshape(28, 28)
        BigIm[28*i:28*(i+1), 28*j:28*(j+1)] = temp
        index += 1

cv2.imshow("demo", BigIm)
cv2.waitKey(0)

結果以下:對象

 看了數據庫的樣子,接下來能夠愉快地進行深度學習了~blog

相關文章
相關標籤/搜索