visdom常用于深度学习迭代过程的可视化。在代码中,需要在相应位置增加如下代码:
import visdom
vis = visdom.Visdom(env=u'domain_accuracy') #设置的环境名称
vis.line(X=np.array([epoch]), Y=np.array([domain_accuracy]),
win='domain_accuracy',
update='append',
opts={'title': 'domain_accuracy'})
在运行代码前,需要cmd在命令行窗口输入
python -m visdom.server
得到网址:http://localhost:8097,在浏览器中打开。(若不小心把网页关闭了,只要后台没有关闭,数据不会丢失,重新复制端口在浏览器中访问即可)
保存数据:
数据将自动保存在此路径下
保存的文件可视化
import visdom
import json
with open('E:/XD_DANN/dataset1400/result1214/domain_accuracy.json', 'r') as f: #修改成自己的.json路径
data = json.load(f)
vis = visdom.Visdom()
vis.line(
X=data['jsons']['domain_accuracy']['content']['data'][0]['x'], #'domain_accuracy'修改成自己的
Y=data['jsons']['domain_accuracy']['content']['data'][0]['y'],
opts={
'title': data['jsons']['domain_accuracy']['content']['layout']['title'],
'xlabel': 'X-axis',
'ylabel': 'Y-axis'
}
)
运行结果:
右下角的edit可以对图像调整修改:可以灵活进行数据调整和图像表达
将曲线调整平滑,Visdom库本身并不提供直接的平滑曲线功能
基于SciPy库中的平滑函数实现平滑曲线的示例代码
import visdom
import json
import numpy as np
from scipy.ndimage import gaussian_filter1d
# 读取JSON文件并解析数据
with open('E:/XD_DANN/dataset1400/result1214/domain_accuracy.json', 'r') as f:
data = json.load(f)
# 提取x和y数据
x = data['jsons']['domain_accuracy']['content']['data'][0]['x']
y = data['jsons']['domain_accuracy']['content']['data'][0]['y']
# 平滑处理
smooth_y = gaussian_filter1d(y, sigma=2) # 使用高斯滤波器进行平滑处理
# 连接到Visdom服务器
vis = visdom.Visdom()
# 绘制平滑曲线
vis.line(
X=np.array(x),
Y=np.array(smooth_y),
opts={
'title': data['jsons']['domain_accuracy']['content']['layout']['title'],
'xlabel': 'X-axis',
'ylabel': 'Y-axis'
}
)