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時,加入端口號參數,如