Visdom

visdom是pytorch的可视化工具, 使用visdom方便跟踪网络训练时损失函数、正确率、学习率等参数的变化。

1 下载安装

python环境中应该要有pytorch.

pip install visdom

2 启动

在终端输入:

python -m visdom.server

启动正常会出现:

python 处理visio文件 python visdom_可视化


这里ctrl+右击网址,会在浏览器中打开一个窗口,如下:

python 处理visio文件 python visdom_python 处理visio文件_02


到这一步,整个visdom的运行环境已经完成。

3 使用

在程序中,导入visdom模块:

from visdom import Visdom

vidsom有环境和窗口的概念,刚开始接触的时候,可能有点混乱,此处做一下记录。

3.1 环境

打开浏览器,可以看到目前三个环境,那么环境如何创建?

python 处理visio文件 python visdom_python_03


以上述存在的activitiy classification1环境为例:

viz1 = Visdom(env="activitiy classification1")

该语句,创建了一个viz1环境,环境名为:“activitiy classification1”

3.2 窗口

在一个环境中,可以创建多个窗口,见图:

python 处理visio文件 python visdom_python 处理visio文件_04


目前,viz1环境中有4个窗口,分别表示损失函数、训练正确率、测试正确率以及学习率随训练的变化。窗口如何创建?

以上述训练正确率为例:

train_acc_win = viz1.line(X=np.array([0]), 
						  Y=np.array([0]),
						  opts=dict(title='train_acc'))

可以看到有三个变量需要赋值,X表示横坐标,Y表示纵坐标,使用opts选项可以为窗口设置标题。这里X,Y赋值为0,进行初始化。
到这一步,我们建立了环境,以及环境下的窗口若干,接下来的问题是,如何更新?

3.3 更新

viz1.line(X=np.array([epoch]),
               Y=np.array([epoch_train_acc]),
               win=train_acc_win,
               update='append')
  • viz1:上面建立的环境的变量名。
  • win:上面建立的窗口名
  • update:设置为‘append’,在原来的基础上画新点,一般也只使用这个选项。
  • X:输入的应该是一个数组,实际我们一般选取epoch作为横坐标,这里的epoch是实际运行时的epoch,是一个数,使用[],转换为列表后再转换为数组。
  • Y:输入数组,epoch_train_acc,理解同上,根据程序实际的设置而定,我的程序中是这样子的:

至此就完成了visdom的配置与使用。