一、在自己电脑上用visdom监视数据
- 安装visdom
pip install visdom
- 在代码中使用visdom
import visdom
vis = visdom.Visdom(env='model_1')
这时候运行代码,代码跑出来是会报错的。因为还需要先在命令行中开启visdom服务。
在命令行中输入
python3 -m visdom.server
之后命令行中会弹出提示
You can navigate to http://localhost:8097
这时候再运行以下这段代码,就不会报错了。
import visdom
vis = visdom.Visdom(env='model_1')
同时,在浏览器中复制粘贴 http://localhost:8097
,就可以看到可视化界面了。
二、在visdom中显示图片
注意,图片的尺寸必须是类似:310241024,即:通道在前,长宽在后。
此外,visdom中可以自定义窗口,比如win='current'
。可以建立多窗口,也可以在同一窗口中实时刷新图像。还可以给窗口定义标题
vis.image(d, win='image',opts=dict(title='images'))
在显示之前,建议关掉之前的窗口,用命令vis.close()
二、用visdom监视远程服务器的数据
1、输入 ssh -L 端口名称 登录的用户名
比如 ssh -L 127.0.0.1:8097:127.0.0.1:8097 username@hostip
- 在当前环境下重新开一个界面进行visdom
先输入screen,再activate可视化窗口,再sreen回去(ctrl+a+d)
在screen回去的界面运行命令行,没有报错visdom相关的错误了。
3.常见报错的解决:
当我输入:python3 -m visdom.server
的时候,报错:address already in use
。这时候其实我直接可以在浏览器中打开这个端口的。
地址被占用的解决办法:
参考网址:https://gauravsohoni.wordpress.com/2015/09/17/address-already-in-use-errors-find-and-kill-process/
先在命令行中输入:lsof -i tcp:8097
,其中8097是端口号。
用以下命令结束这个pid:
kill -9 <PID> #where <PID> is the process id returned by lsof
这时候再输入:lsof -i tcp:8097
,就没有内容返回了。同时网页也打不开了。
这时候再输入:python3 -m visdom.server
,就没有报错:端口被占用了。