visdom使用小技巧

2023-12-15 13:33:52

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'
    }
)

文章来源:https://blog.csdn.net/qq_46458188/article/details/135010400
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。