CNN可视化技术总结(一)-特征图可视化

CNN可视化技术总结(二)--卷积核可视化

CNN可视化技术总结(三)--类可视化

导言:

    前面介绍了可视化的三种方法--特征图可视化,卷积核可视化,类可视化,这三种方法在很多提出新模型或新方法的论文中很常见,其主要作用是提高模型或者新方法的可信度,或者用来增加工作量,或者用来凑字数,还有一些作用是帮助理解模型针对某个具体任务是如何学习,学到了哪些信息,哪些区域对于识别有影响等。

    本文将介绍一些可视化的项目,主要有CNN解释器,特征图、卷积核、类可视化的一些代码和项目,结构可视化工具,网络结构手动画图工具。

1. CNN-Explainer

这是一个中国博士发布的名叫CNN解释器的在线交互可视化工具。主要对于那些初学深度学习的小白们 理解关于神经网络是如何工作很有帮助,如卷积过程,ReLU过程,平均池化过程,中间每一层的特征图的样子,都可以看到,相当于给了一个显微镜,可以随意对任意一层,任何一项操作的前后变化,观察得清清楚楚。

显示卷积的过程中前后特征图的变化,中间的操作。

CNN可视化技术总结(四)--可视化工具与项目-LMLPHP

CNN是如何输出预测的

CNN可视化技术总结(四)--可视化工具与项目-LMLPHPCNN可视化技术总结(四)--可视化工具与项目-LMLPHP

  还可以在线上传图片,看到一张图片在经过每一层的卷积,池化,激活后的变化,最后输出预测结果。

项目链接:

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格式的文件。

CNN可视化技术总结(四)--可视化工具与项目-LMLPHP

此图来源于网络,侵删

项目地址:

https://github.com/ethereon/netscope

ConvNetDraw

  这个工具用两个图可直接说明,第一个是输入,第二个是输出

CNN可视化技术总结(四)--可视化工具与项目-LMLPHP

CNN可视化技术总结(四)--可视化工具与项目-LMLPHP

这两个图来源于网络,侵删

项目地址:

https://github.com/cbovar/ConvNetDraw

PlotNeuralNet

  这个稍微麻烦一点点,效果图如下:

CNN可视化技术总结(四)--可视化工具与项目-LMLPHP

项目地址:

https://github.com/HarisIqbal88/PlotNeuralNet

4. 网络结构手动画图工具

  很多新手会问的一个问题,论文中那些网络结构图是如何画的。

  这里解答一下,我所了解的主要是用PPT, VISIO。当然也可以使用上面那几个。

  再补充一个在线工具,NN-SVG

CNN可视化技术总结(四)--可视化工具与项目-LMLPHP

项目地址:http://alexlenail.me/NN-SVG/

总结

这四篇文章基本介绍完了目前CNN可视化的一些方法,即特征图可视化,卷积核可视化和类可视化,总结了一些可视化工具与项目,当然不免也有个别遗漏的,日后若有一些比较重大突破的一些可视化工具出来,将继续补充,将放在公众号(CV技术指南)的技术总结部分。

对于可视化,其实还包括训练过程的可视化,如Loss值,精度等实时更新,这个比较简单,就不在这个总结系列里说明了。

本文来源于公众号《CV技术指南》的技术总结部分,更多相关技术总结请扫描文末二维码关注公众号。

CNN可视化技术总结(四)--可视化工具与项目-LMLPHP

02-17 17:22