CNN視覺化技術總結(一)-特徵圖視覺化
CNN視覺化技術總結(二)--卷積核視覺化
CNN視覺化技術總結(三)--類視覺化
導言:
前面介紹了視覺化的三種方法--特徵圖視覺化,卷積核視覺化,類視覺化,這三種方法在很多提出新模型或新方法的論文中很常見,其主要作用是提高模型或者新方法的可信度,或者用來增加工作量,或者用來湊字數,還有一些作用是幫助理解模型針對某個具體任務是如何學習,學到了哪些資訊,哪些區域對於識別有影響等。
本文將介紹一些視覺化的專案,主要有CNN直譯器,特徵圖、卷積核、類視覺化的一些程式碼和專案,結構視覺化工具,網路結構手動畫圖工具。
1. CNN-Explainer
這是一箇中國博士釋出的名叫CNN直譯器的線上互動視覺化工具。主要對於那些初學深度學習的小白們 理解關於神經網路是如何工作很有幫助,如卷積過程,ReLU過程,平均池化過程,中間每一層的特徵圖的樣子,都可以看到,相當於給了一個顯微鏡,可以隨意對任意一層,任何一項操作的前後變化,觀察得清清楚楚。
顯示卷積的過程中前後特徵圖的變化,中間的操作。
CNN是如何輸出預測的
還可以線上上傳圖片,看到一張圖片在經過每一層的卷積,池化,啟用後的變化,最後輸出預測結果。
專案連結:
https://github.com/poloclub/cnn-explainer
2. 一些視覺化特徵圖、卷積核、熱力圖的程式碼。
視覺化特徵圖
https://github.com/waallf/Viusal-feature-map
視覺化卷積核
https://keras.io/examples/vision/visualizing_what_convnets_learn/
https://blog.keras.io/how-convolutional-neural-networks-see-the-world.html
Grad-CAM
https://github.com/ramprs/grad-cam
熱力圖
https://github.com/heuritech/convnets-keras
下面這個專案是同時包含特徵圖視覺化,卷積核視覺化和熱力圖的一個連結:
https://github.com/raghakot/keras-vis
3. 結構視覺化工具
Netscope
用於視覺化模型結構的線上工具,僅支援caffe的prototxt檔案視覺化。需要自己寫prototxt格式的檔案。
此圖來源於網路,侵刪
專案地址:
https://github.com/ethereon/netscope
ConvNetDraw
這個工具用兩個圖可直接說明,第一個是輸入,第二個是輸出
這兩個圖來源於網路,侵刪
專案地址:
https://github.com/cbovar/ConvNetDraw
PlotNeuralNet
這個稍微麻煩一點點,效果圖如下:
專案地址:
https://github.com/HarisIqbal88/PlotNeuralNet
4. 網路結構手動畫圖工具
很多新手會問的一個問題,論文中那些網路結構圖是如何畫的。
這裡解答一下,我所瞭解的主要是用PPT, VISIO。當然也可以使用上面那幾個。
再補充一個線上工具,NN-SVG
專案地址:http://alexlenail.me/NN-SVG/
總結
這四篇文章基本介紹完了目前CNN視覺化的一些方法,即特徵圖視覺化,卷積核視覺化和類視覺化,總結了一些視覺化工具與專案,當然不免也有個別遺漏的,日後若有一些比較重大突破的一些視覺化工具出來,將繼續補充,將放在公眾號(CV技術指南)的技術總結部分。
對於視覺化,其實還包括訓練過程的視覺化,如Loss值,精度等實時更新,這個比較簡單,就不在這個總結系列裡說明了。
本文來源於公眾號《CV技術指南》的技術總結部分,更多相關技術總結請掃描文末二維碼關注公眾號。