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

 

顯示結果為:

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

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

 代碼如下:

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)

結果如下:

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


免責聲明!

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



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