前言
个人认为,可视化是能够增进对网络理解的强有力的方式,但是问过一个相关工作者,貌似只对loss曲线感兴趣。
caffe的对外接口其实很丰富,包括了matlab和python,虽然这个框架还存在一些bug(比如对错误的deploy文件的容错还有待提高,不过这锅貌似也不能caffe背),但已经够用了,在此感谢作者!最近比较忙,所以没有时间去实现了,只能暂时在这边构思一下~
所需实现功能
1、实时跟进loss与accuracy,并作出曲线图
2、实时跟进权值训练情况,作出权值图与特征map
3、其它一些功能
实现思路
如果要嵌入到caffe里实现,可能就比较复杂了;初步构思通过独立的进程来实现,像是在inspect一样。
以上功能实现的对应思路:
1、通过训练的实时日志来构造可视化;获取日志的方式,windows平台下需要修改caffe源码(命令行的>操作符和管道都试过了,不行),Linux下不需要修改源码,命令行传参就行了。
2、通过snapshot的caffemodel文件可以获得权值等信息,以构造可视化;将snapshot调成每迭代一次生成一次;权值图需要兼顾不同网络层的可视化,特征map可以指定某个固定的图像文件(可以每个类指定一张,如果类太多难以显示出来则可以轮询每个类的例图)根据权值计算出来。