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