Home visdom使用
Post
Cancel

visdom使用

官方github repo

首先在服务器端安装visdom

1
pip install visdom

使用流程简述

  1. 服务器端启动visdom(建议在screen下进行)

    1
    
    visdom   # equivalent to running python -m visdom.server.
    
    • 当使用VS code时,在终端窗口port栏即可看到8097port,点击Open in Browser即可打开浏览器显示visdom界面。

    • 如果不是使用VS code或者登入http://localhost:8097/没法显示到visdom界面,可尝试做好端口映射。在本机执行

      1
      
      ssh -C -f -N -g -L 8097:localhost:8097 -p <your_server_port> <user_name>@<ip>     
      
    • 默认端口为8097,若需要指定端口,可执行visdom -port <new_port>

  2. 服务器端运行代码

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    
    # filename: vis_exp.py
    # This is a toy example
       
    import visdom
    viz = visdom.Visdom(env='<your_env_name>')
       
    iter_set = []
    loss_set = []
       
    for iter in total_iter:
        loss = ...
           
        iter_set.append(iter)
        loss_set.append(loss)
        viz.line(X=iter_set, Y=loss_set, win='<your_win_name>')
    

    在服务器端已启动visdom后(第1步),运行该程序:

    1
    
    python vis_exp.py
    
  3. 本机浏览器登入localhost:8097,即可观察到上述定义的曲线。

Demos

官方github给了一些demo,可参照,另可参考知乎。以下纪录一些常用操作,方便直接使用。

指定win为某一名称,则可在所在窗口进行更新,而不是新建一个窗口作图,参见这里

绘制曲线

绘制单条曲线

1
2
3
4
viz.line(X=x_vec, 
         Y=y_vec,
         win='win_name',    # 在所在窗口进行更新,而不是新建一个窗口作图
         opts=dict(xlabel='xlabel', ylabel='ylabel',title='title'))

绘制多条曲线并加上图例

1
2
3
4
5
6
7
8
import numpy as np

viz.line(X=np.column_stack((X_tensor_set_1, X_tensor_set_2)), 
         Y=np.column_stack((Y_tensor_set_1, Y_tensor_set_2)),
         win='win_name', 
         opts=dict(xlabel='xlabel', ylabel='ylabel',title='title'
                   legend=['legend1', 'legend2'])
        		)

文本框

1
2
3
4
5
6
# append manner
textwindow = viz.text('Hello World! More text should be here')
viz.text('And here it is', win=textwindow, append=True)

# not append manner
viz.text(<your_text>, win='<your_win_name>')

图片

1
2
3
4
5
6
7
8
9
10
11
# 注意这里传入的图片应为CHW格式的
# 单张
viz.image(
    np.random.rand(3, 512, 256),   
    opts=dict(title='Random!', caption='How random.'),
)
# 多张
viz.images(
    np.random.randn(20, 3, 64, 64),
    opts=dict(title='Random images', caption='How random.')
)

其他

关闭窗口

参考

1
2
# 通过指定win来关闭对应窗口。当win为None时,关闭当前环境下所有窗口
vis.close(win=None)

保存和本地加载visdom实验结果

This github repo theevann/visdom-save helps.

This post is licensed under CC BY 4.0 by the author.

模型压缩自己的总结

ResNet源码阅读