CNN可视化技术总结(四)--可视化工具与项目
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技术指南》的技术总结部分,更多相关技术总结请扫描文末二维码关注公众号。