之前,有寫過關於TensorBoard使用的文章,後來因為科研任務繁重,加上找工作原因,一直沒時間總結。趁今天週末有時間總結下,用了個簡單的CNN網絡來舉例子。
第一步:老規矩,導入相關的包;
第二步:設置參數,就算batch的個數。很多情況,由於內存原因,不能一次性把所有的訓練集全部加裝到內存上,因此需要使用batch;
第三步:定義一些函數,主要通過tf.summary.scalar()記錄參數;
權重初始化函數
卷積函數
池化函數
定義輸入的placeholder,因為使用了卷積函數,需要將784維的一維數據,轉為28*28像素的數據。
搭建卷積網絡:第一層的卷積層,5x5的卷積核,2個卷積核從1個平面抽取特徵
第二層的卷積層,5x5的卷積核,64個卷積核從32個平面抽取特徵
28*28的圖片第一次卷積後還是28*28(使用了SAME方式,SAME模式是最常見的模式,是指經過卷積的特徵圖和原圖的size保持不變),第一次池化後變為14*14;
第二次卷積後為14*14,第二次池化後變為了7*7;
進過上面操作後得到64張7*7的平面。
全連接層:
交叉熵代價函數
使用AdamOptimizer進行優化
求準確率
合併所有的summary
最後,進行訓練
輸出結果
TensorBoard使用
tensorboard --logdir=文件夾路徑 --host=127.0.0.1
(複製指定路徑後就可以訪問了)
網絡拓補圖:
記錄的權重參數的信息
還有很多記錄的數據,就不一一展示,感興趣的同學可以自己嘗試下(大神請繞路(~_~))
需要代碼的,可私聊我。
閱讀更多 AI機器學習與數據挖掘 的文章