pytorch可视化工具visdom

visdom的github repo: https://github.com/facebookresearch/visdom

知乎一个教程:https://zhuanlan.zhihu.com/p/34692106

 

1、screen或者tmux,先开启visdom server

我比较习惯用screen,所以可以screen -S visdom_server,创建一个screen session,然后输入visdom

在本地浏览器输入ip地址加8097端口号,如128.21.32.54:8097,即可显示visdom窗口。

如果经常使用的是同一台服务器,由于端口号默认是8097,所以还可以将该地址添加书签,每一次使用时便可很方便地访问。

2、在python中的使用

上述开启了visdom的server之后,在python中先创建一个visdom对象

import visdom

vis = visdom.Visdom()

然后便可以方便地使用了。

一些注意点:

① visdom.image()显示的图像数组的格式是 通道数 x 高 x 宽,而像PIL.Image读取的图像是高 x 宽 x 通道数,因此需要对其numpy数组进行转置一下。

from PIL import Image
import numpy as np
import visdom

vis = visdom.Visdom()

img = Image.open('xxx.jpg')
img = np.array(img).transpose([2, 0, 1])

vis.image(img)

官网也提到了:

② 使用matplotlib需要设置backend模式,即matplotlib.use('agg'),否则直接在终端窗口import matplotlib.pyplot会报错

import matplotlib
matplotlib.use('agg')
import matplotlib.pyplot as plt
import visdom


plt.imshow(xxx)
visdom.matplot(plt)

 

visdom端口冲突:

启动visdom默认会使用8097端口号,如果要指定端口号,则加上-port参数,如

visdom -port 8098

开启了这个端口号,在使用的时候,需要在实例化visdom时,加入端口号参数,如

vis = visdom.Visdom(port=8098)
 
参考:https://github.com/zeal-github/some-memo/blob/master/visdom.md
 
posted @ 2019-02-20 10:27  Jisongxie  阅读(6197)  评论(0编辑  收藏  举报