首先本周沒有完成用神經(jīng)網(wǎng)絡(luò)訓(xùn)練手寫體數(shù)字識(shí)別的實(shí)例奢方,下一周繼續(xù)研究,并在本篇文章結(jié)尾繼續(xù)更新。
目錄:
1.使用Softmax Regressions完成手寫體數(shù)字識(shí)別
2.利用神經(jīng)網(wǎng)絡(luò)訓(xùn)練手寫體數(shù)字識(shí)別的必備知識(shí)
3.利用神經(jīng)網(wǎng)絡(luò)訓(xùn)練手寫體數(shù)字識(shí)別
第一、使用Softmax Regressions完成手寫體數(shù)字識(shí)別
其實(shí)學(xué)習(xí)TensorFlow的MNIST實(shí)驗(yàn)就相當(dāng)于在學(xué)習(xí)C語(yǔ)言中打印出“Hello world!”。在MNIST For ML Beginners中官方指南給出了詳細(xì)的說明并提供了實(shí)現(xiàn)Code制恍,我按照其提供的Code運(yùn)行結(jié)果為0.9714,還有很大的提升空間神凑。
第二净神、利用神經(jīng)網(wǎng)絡(luò)訓(xùn)練手寫體數(shù)字識(shí)別的必備知識(shí)
所需的必備知識(shí)有卷積、池化溉委、全連接鹃唯、Dropout、激勵(lì)函數(shù)瓣喊、CNN神經(jīng)網(wǎng)絡(luò)層次分析坡慌。
第三、利用神經(jīng)網(wǎng)絡(luò)訓(xùn)練手寫體數(shù)字識(shí)別
參見訓(xùn)練代碼藻三,其中使用到了:
1.InteractiveSession類洪橘,這能讓你在構(gòu)建代碼時(shí)更加靈活,允許你做一些交互操作棵帽,通過創(chuàng)建一個(gè)計(jì)算流圖(computation graph)來部分地運(yùn)行圖計(jì)算熄求。
2.tf.nn.conv2d(x, W,strides=[1,1,1,1],padding='SAME'),計(jì)算卷積的方法逗概,tf.nn.conv2d(input, filter, strides, padding, use_cudnn_on_gpu=None, name=None)
除去name參數(shù)用以指定該操作的name弟晚,與方法有關(guān)的一共五個(gè)參數(shù):
第一個(gè)參數(shù)input:指需要做卷積的輸入圖像,它要求是一個(gè)Tensor逾苫,具有[batch, in_height, in_width, in_channels]這樣的shape卿城,具體含義是[訓(xùn)練時(shí)一個(gè)batch的圖片數(shù)量, 圖片高度, 圖片寬度, 圖像通道數(shù)],注意這是一個(gè)4維的Tensor铅搓,要求類型為float32和float64其中之一
第二個(gè)參數(shù)filter:相當(dāng)于CNN中的卷積核藻雪,它要求是一個(gè)Tensor,具有[filter_height, filter_width, in_channels, out_channels]這樣的shape狸吞,具體含義是[卷積核的高度,卷積核的寬度指煎,圖像通道數(shù)蹋偏,卷積核個(gè)數(shù)],要求類型與參數(shù)input相同,filter的通道數(shù)要求與input的in_channels一致至壤,有一個(gè)地方需要注意威始,第三維in_channels,就是參數(shù)input的第四維
第三個(gè)參數(shù)strides:卷積時(shí)在圖像每一維的步長(zhǎng)像街,這是一個(gè)一維的向量黎棠,長(zhǎng)度4晋渺,strides[0]=strides[3]=1
第四個(gè)參數(shù)padding:string類型的量,只能是"SAME"(),"VALID"其中之一脓斩,這個(gè)值決定了不同的卷積方式
第五個(gè)參數(shù):use_cudnn_on_gpu:bool類型木西,是否使用cudnn加速,默認(rèn)為true
結(jié)果返回一個(gè)Tensor随静,這個(gè)輸出八千,就是我們常說的feature map
2.tf.nn.max_pool(x,ksize=[1,2,2,1],strides=[1,2,2,1],padding='SAME'),采用最大池化的方法燎猛,減少數(shù)據(jù)量恋捆,提高計(jì)算速度。
3.weight_variable([7*7*64,1024])重绷,全連接層沸停,圖像的尺寸被縮減為7 * 7,我們最后加入一個(gè)神經(jīng)元數(shù)目為1024的全連接層來處理所有的圖像上昭卓。
4.tf.nn.dropout(h_fc1, keep_prob)愤钾,為了減少過擬合程度,在輸出層之前應(yīng)用dropout技術(shù)(即丟棄某些神經(jīng)元的輸出結(jié)果)葬凳。