visdom是facebook开发的一款可视化工具,使用pytorch训练神经网络时,可以使用visdom来实时对数据可视化。
pip install visdom
因为会用到画图,所以推荐同时安装matplotlib
pip install matplotlib
利用下边的命令在cmd中输入即可!
python -m visdom.server
然后会输出以下所示内容:
visdom的默认端口是8097
You can navigate to http://localhost:8097
可以在启动服务的时候指定端口号:
python -m visdom.server -p 端口号
此时,在浏览器就可以输入以下端口打开visdom的web服务了
You can navigate to http://localhost:端口号
(1)在服务器上使用8097端口正常启动visdom,终端输入:
python -m visdom.server
如果使用自己指定的端口:
python -m visdom.server -p 端口号
此时调用到时候代码中也得指定端口号,如果利用里默认的启动方法,则不需要。如下所示:
import matplotlib.pyplot as plt
from visdom import Visdom
vis = Visdom(port=9015)#我指定端口为9015
plt.plot(range(100))
vis.matplot(plt)
(3)本地浏览器输入以下地址即可打开visdom服务器
服务器IP:刚才设置的端口
例如:
10.8.192.11:9015
此处比较简单粗暴的方法就是利用conda迁移大法,在本地的环境中配置好,然后迁移到离线服务器。(conda迁移方法可以参考:conda实现本地项目环境迁移到离线服务器使用)
Needs to happen before any tornado imports!
Checking for scripts
此时我们需要进入以下路径,将visdom中的自动下载代码屏蔽:
linux中的路径如下:
打开server.py,在1917行,屏蔽下载的函数:如下所示,第二行的函数,我已经屏蔽。
def download_scripts_and_run():
# download_scripts()
main()
if __name__ == "__main__":
download_scripts_and_run()
此时,服务会启动,但是,每次visdom并不会将本的数据展示在浏览器端,因为咱们缺少相应的包,所以需要替换操作,将本地的可以正常使用 visdom路径打开,将其中的static文件夹压缩,放到linux服务器的visdom中,替换原有的static文件夹,即可正常使用visdom。(我本地是win10环境下安装的visdom,直接复制visdom中的static到linux的对应文件下,可以正常使用,我的win10路径和linux路径如下图所示)。
from visdom import Visdom
vis=visdom.Visdom(env='mask_1',port=9015)#此处env可以自己设定,将来在浏览器中好辨认是哪个图,建议命中中包含下划线,将来在浏览器中看的更清楚。port是自己映射的端口。
#绘制准确率
vis.line([[train_acc],[val_acc]],[epoch],win='loss',opts=dict(title='train and val ACC ',linecolor=np.array([ [120, 150, 250], [170, 80, 60]]),legend=['train_acc','val_acc']),update='append')
#绘制loss
vis.line([[train_loss],[val_loss]],[epoch],win='Acc',opts=dict(title='train and val Loss ',linecolor=np.array([ [120, 150, 250], [170, 80, 60]]),legend=['train_loss','val_loss']),update='append')