visdom使用小技巧

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

visdom使用小技巧_第1张图片

得到网址:http://localhost:8097,在浏览器中打开。(若不小心把网页关闭了,只要后台没有关闭,数据不会丢失,重新复制端口在浏览器中访问即可)

visdom使用小技巧_第2张图片

保存数据

visdom使用小技巧_第3张图片

数据将自动保存在此路径下 

visdom使用小技巧_第4张图片

visdom使用小技巧_第5张图片保存的文件可视化

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

运行结果: 

 visdom使用小技巧_第6张图片

右下角的edit可以对图像调整修改:可以灵活进行数据调整和图像表达

visdom使用小技巧_第7张图片 将曲线调整平滑,Visdom库本身并不提供直接的平滑曲线功能

visdom使用小技巧_第8张图片

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

visdom使用小技巧_第9张图片

你可能感兴趣的:(人工智能)