CNN視覺化技術總結(四)--視覺化工具與專案

CV技術指南(公眾號)發表於2021-02-17

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技術指南》的技術總結部分,更多相關技術總結請掃描文末二維碼關注公眾號。

相關文章