八、AlexNet可能會提高你的準(zhǔn)確率

八、AlexNet可能會提高你的準(zhǔn)確率

從之前的文章中你學(xué)會了使用TensorFlow來對經(jīng)典的手寫數(shù)字集的一種識別,最終訓(xùn)練出來的識別準(zhǔn)確率雖然不是很高,因?yàn)樗纳窠?jīng)**實(shí)在實(shí)在是太簡單了。只有寥寥簡單的五層。

我們這次采用AlexNet神經(jīng)**來再次對mnist數(shù)據(jù)進(jìn)行測試。

使用在MNIST學(xué)習(xí)的手寫數(shù)字識別用CNN寫數(shù)字組α的%(=/10)正確?

你這里的正確率應(yīng)該是指手寫數(shù)字識別的正確率,其計算公式為:正確率=模型正確識別數(shù)字類型的樣本數(shù)/總樣本數(shù)舉個例子,假設(shè)有3張圖片,分別為手寫體的3,7,8,而你構(gòu)建的模型分別打上了3,7,9的標(biāo)簽,那么只有3,7兩張圖片是正確識別的數(shù)字,8被錯誤識別為9,因此正確率為2/3,即約為66.7%。

MNIST數(shù)據(jù)集上手寫數(shù)字識別準(zhǔn)確率是否能達(dá)到100

其實(shí)就是python怎么讀取binnary filemnist的結(jié)構(gòu)如下,選取train-images TRAINING SET IMAGE FILE (train-images-idx3-ubyte):[offset] [type] [value] [description] 0000 32 bit integer 0x00000803(2051) magic number 0004 32 bit integer 60000 number of images 0008 32 bit integer 28 number of rows 0012 32 bit integer 28 number of columns 0016 unsigned byte ?? pixel 0017 unsigned byte ?? pixel …….. xxxx unsigned byte ?? pixel 也就是之前我們要讀取4個 32 bit integer 試過很多方法,覺得最方便的,至少對我來說還是使用struct.unpack_from()filename = \’train-images.idx3-ubyte\’binfile = open(filename , \’rb\’)buf = binfile.read()先使用二進(jìn)制方式把文件都讀進(jìn)來index = 0magic, numImages , numRows , numColumns = struct.unpack_from(\’>IIII\’ , buf , index)index += struct.calcsize(\’>IIII\’)然后使用struc.unpack_from\’>IIII\’是說使用大端法讀取4個unsinged int32 然后讀取一個圖片測試是否讀取成功im = struct.unpack_from(\’>784B\’ ,buf, index)index += struct.calcsize(\’>784B\’) im = np.array(im)im = im.reshape(28,28) fig = plt.figure()plotwindow = fig.add_subplot(111)plt.imshow(im , cmap=\’gray\’)plt.show()\’>784B\’的意思就是用大端法讀取784個unsigned byte 完整代碼如下import numpy as npimport structimport matplotlib.pyplot as plt filename = \’train-images.idx3-ubyte\’binfile = open(filename , \’rb\’)buf = binfile.read() index = 0magic, numImages , numRows , numColumns = struct.unpack_from(\’>IIII\’ , buf , index)index += struct.calcsize(\’>IIII\’) im = struct.unpack_from(\’>784B\’ ,buf, index)index += struct.calcsize百科(\’>784B\’) im = np.array(im)im = im.reshape(28,28) fig = plt.figure()plotwindow = fig.add_subplot(111)plt.imshow(im , cmap=\’gray\’)plt.show()只是為了測試是否成功所以只讀了一張圖片