Mnist手寫字型檔的圖片轉換及lenet網路模型測試
阿新 • • 發佈:2019-02-05
已經訓練了mnist的網路和配置了caffe的python介面,
訓練和測試
caffe的python介面
接下來就是學會怎麼用這個訓練好的模型和python介面。
很自然的想法就是直接輸入一個手寫數字的圖片,通過訓練好的模型之後,給反饋一個分類的結果。
這樣就手寫需要把手寫數字的.gz格式轉換成統一的.bmp格式,或者也可以用自己製作的圖片,但是得滿足一定的要求,比如:
- 必須是黑白256位黑白色
- 必須是黑底白字
- 畫素大小是28*28
- 數字在圖片中間,上下沒有過多的空白
這樣的要求還是比較多的,不如直接把已有的格式轉換一下,轉換python指令碼如下:
#coding = utf-8 import numpy as np import struct import matplotlib.pyplot as plt from PIL import Image #載入圖片庫 filename = 't10k-images-idx3-ubyte' #壓縮格式的樣本庫 binfile = open(filename,'rb') buf = binfile.read() #讀取到快取buf裡 index = 0 magic,numImages,numRows,numColumns = struct.unpack_from('>IIII',buf,index) # 指定型別讀取資料,得到圖片總數 index += struct.calcsize('>IIII') for image in range(0,numImages): #迴圈讀取圖片 im = struct.unpack_from('>784B',buf,index) #讀一個圖片 index +=struct.calcsize('>784B') im = np.array(im,dtype = 'uint8') im = im.reshape(28,28) #畫素大小 # fig = plt.figure() # plotwindow = fig.add_subplot(111) # plt.imshow(im,cmap = 'gray') # plt.show() im = Image.fromarray(im) im.save('mnist_test/train_%s.bmp'%image,'bmp') #儲存轉換後的圖片格式
很明顯,在mnist資料夾裡執行,即可得到一個新的資料夾mnist_test/裡面就是我們想要的測試圖片了。
接下來就是使用caffe的python介面來進行分類測試。程式碼及執行結果如下:
我用的是jupyter notebook。測試了好幾個圖片,分類效果都還不錯。
歡迎關注公號,加好友: