卷積神經網絡+TensorBoard 詳細實戰

之前,有寫過關於TensorBoard使用的文章,後來因為科研任務繁重,加上找工作原因,一直沒時間總結。趁今天週末有時間總結下,用了個簡單的CNN網絡來舉例子。

第一步:老規矩,導入相關的包;

卷積神經網絡+TensorBoard 詳細實戰

第二步:設置參數,就算batch的個數。很多情況,由於內存原因,不能一次性把所有的訓練集全部加裝到內存上,因此需要使用batch;

卷積神經網絡+TensorBoard 詳細實戰

第三步:定義一些函數,主要通過tf.summary.scalar()記錄參數;

卷積神經網絡+TensorBoard 詳細實戰

權重初始化函數

卷積神經網絡+TensorBoard 詳細實戰

卷積函數

卷積神經網絡+TensorBoard 詳細實戰

池化函數

卷積神經網絡+TensorBoard 詳細實戰

定義輸入的placeholder,因為使用了卷積函數,需要將784維的一維數據,轉為28*28像素的數據。

卷積神經網絡+TensorBoard 詳細實戰

搭建卷積網絡:第一層的卷積層,5x5的卷積核,2個卷積核從1個平面抽取特徵

卷積神經網絡+TensorBoard 詳細實戰

第二層的卷積層,5x5的卷積核,64個卷積核從32個平面抽取特徵

卷積神經網絡+TensorBoard 詳細實戰

28*28的圖片第一次卷積後還是28*28(使用了SAME方式,SAME模式是最常見的模式,是指經過卷積的特徵圖和原圖的size保持不變),第一次池化後變為14*14;

第二次卷積後為14*14,第二次池化後變為了7*7;

進過上面操作後得到64張7*7的平面。

全連接層:

卷積神經網絡+TensorBoard 詳細實戰

卷積神經網絡+TensorBoard 詳細實戰

交叉熵代價函數

卷積神經網絡+TensorBoard 詳細實戰

使用AdamOptimizer進行優化

卷積神經網絡+TensorBoard 詳細實戰

求準確率

卷積神經網絡+TensorBoard 詳細實戰

合併所有的summary

卷積神經網絡+TensorBoard 詳細實戰

最後,進行訓練

卷積神經網絡+TensorBoard 詳細實戰

輸出結果

卷積神經網絡+TensorBoard 詳細實戰

TensorBoard使用

tensorboard --logdir=文件夾路徑 --host=127.0.0.1
(複製指定路徑後就可以訪問了)

網絡拓補圖:

卷積神經網絡+TensorBoard 詳細實戰

記錄的權重參數的信息

卷積神經網絡+TensorBoard 詳細實戰

卷積神經網絡+TensorBoard 詳細實戰

卷積神經網絡+TensorBoard 詳細實戰

還有很多記錄的數據,就不一一展示,感興趣的同學可以自己嘗試下(大神請繞路(~_~))

卷積神經網絡+TensorBoard 詳細實戰

需要代碼的,可私聊我。


分享到:


相關文章: