去年考研,成功上岸。有一年没写博客了,今天可以重新开始写了。(我胡汉三又回来了!)
这篇博客写一下visdom的安装以及使用。
所有过程均在Ubuntu系统中完成。
一、visdom安装
1.visdom安装过程比较简单,只需要两行命令即可:
pip install visdom
pip install --upgrade visdom
2.启动
启动命令如下:
python -m visdom.server
3.打开界面
启动后如果不报错,则再浏览器中输入如下网址即可进入visdom界面:
http://localhost:8097/
输入网址后如果再浏览器中看到如下界面,则说明启动成功:
其他的就不多说了,我的安装过程中没有出现错误,如果出错的话可以去问度娘。
二、pytorch训练过程可视化
我的毕业设计需要神经网络训练过程可视化,之前找过好几个工具,第一个是tensorboard,这个工具个人觉得用起来没有visdom便捷;第二个是flask,严格意义上讲,这其实不算一个工具,算是一个框架,实现python与html交互,我花费一天时间来学这个东西,原理倒是不难,但是html的界面美化很难(以前小学期的时候做过html的优化,简直是一种折磨),而且需要时间,所以这个框架被我放弃了。找来找去,还是visdom用起来方便。
我主要做了两部分工作,第一部分是神经网络训练过程中各个参数的动态展示(train_accuracy、train_loss等),第二部分就是展示最终分类结果的图片:classification_map。
1.训练参数动态展示
我的代码是花了四个图,为了讲解方便,我只拿一个图的代码做例子。
代码如下:
#导入相关库文件
from visdom import Visdom
#定义运行环境,没有的话默认为main
viz = Visdom()
#x列表存储x值
x = []
#train_accuracy_visdom列表存储运行过程中产生的train_accuracy参数值
train_accuracy_visdom = []
#定义train_accuracy在visdom中展示的动态折线图表的格式
#参数包括:图标名称、x轴名称、y轴名称、图标宽度、图表长度
train_accuracy = {
"title": 'train_accuracy',
"xlabel":'x',
"ylabel":'y',
"width":300,
"height":200,
}
#因为我的网络需要训练10代,所以我让图表动态更换图表名称
#index_iter是代数
train_accuracy['title'] = 'iter:'+str(int(index_iter))+' train_accuarcy'
#计算train_accuracy并追加到train_accuracy_visdom列表中
train_accuracy_visdom.append(train_acc_sum/n)
#在visdom中动态展示图表
viz.line(X=x, Y=train_accuracy_visdom, win='iter:'+str(int(index_iter))+' train_accuarcy', opts=train_accuracy)
运行后会得到如下结果(四个图):
二、visdom展示classification_map图片
这个功能的代码也很简单,直接贴代码:
from visdom import Visom
import cv2
image = "你自己的图片的存储路径"
#定义运行环境,没有的话默认为main
vis = Visdom(env='main')
#展示图片,因为vis展示的顺序为GBR,而我们的图片是RGB的,所以要换一下格式
vis.image(image.transpose(2,0,1)[::-1,...])
运行结果如下:
怎么样,是不是非常简单。
如果文章有不足之处,欢迎各位批评指正!