这是一篇关于在深度学习过程中第一次安装使用visdom遇到的一些坑。也是一篇visdom安装小白教程。
1. 安装visdom
使用清华大学镜像源安装visdom包
pip install visdom -i https://pypi.tuna.tsinghua.edu.cn/simple
2. 启动visdom
python -m visdom.server
这时候会遇见第一个坑,当你在命令行输入上述命令时,会返回一个提示take a little while,大概就是说要等一会儿时间,但是过了很久依旧卡在这个界面,这是因为我们需要下载的文件需要搭梯子,所以挂个VPN即可解决这个坑。
鉴于有的小伙伴懒得搭梯子,所以博主给出自己完整的visdom文件
visdom百度云链接:抱歉由于文件过多,百度云需要超级会员,需要完整visdom文件的小伙伴可以评论或者私信博主
如果使用博主的visdom文件可以跳过步骤3,4!!!因为博主已经添加缺少的配置文件
3. 手动添加visdom缺少的配置文件
当我们输入测试代码后,发现蓝屏,无法显示测试代码所对应的可视化内容,而且左下角显示load MathJax相关file failed,这时候我们需要手动添加配置文件
3.1 MathJax-master、plotly.js-1.43.2、react-grid-layout-master
这三个配置文件开源在了github,需要将其放置在visdom包所在指定路径下。以MathJax-master为例,需要将其放在
E:\python\Lib\site-packages\visdom\static\js\MathJax-master,其余两个文件加类似,放在相同的文件夹static\js下。
MathJax-master文件百度云链接:https://pan.baidu.com/s/1bFNUCqx3OvBFMlO6Bte4Pw 提取码:judg
plotly.js-1.43.2文件百度云链接:https://pan.baidu.com/s/100I8Bs1MWR4BpxoaTL4lrw 提取码:cja2
react-grid-layout-master文件百度云链接:https://pan.baidu.com/s/1Q3_4by3vAvPgpIYyd5-V8w 提取码:6lgr
3.2 layout_bin_packer
路径为:E:\python\Lib\site-packages\visdom\static\fonts\layout_bin_packer。
layout_bin_packer文件百度云链接:https://pan.baidu.com/s/1H810DjkiJVDOfmc4v-z-3g 提取码:7hxh
4 修改static下面的index.html
用记事本直接打开index.html,用下面代码替代相同部分内容。<!-- Other deps -->下面4行代码,<!-- Mathjax --> 一行代码,<!-- Plotly --> 一行代码。
<!-- Other deps -->
<script src={{ static_url("js/react-react.min.js") }}></script>
<script src={{ static_url("js/react-dom.min.js") }}></script>
<script src={{ static_url("fonts/layout_bin_packer") }}></script>
<script src={{ static_url("js/react-grid-layout-master/dist/react-grid-layout.min.js") }}></script>
<!-- Mathjax -->
<script type="text/javascript" async src={{ static_url("js/MathJax-master/MathJax.js") }}></script>
<!-- Plotly -->
<script src={{ static_url("js/plotly.js-1.43.2/dist/plotly.min.js") }}></script>
5.切换网络
当我们上述操作都实现后,visdom理应出现对应的可视化内容,但是还是蓝屏状态,首先看一下env选择是否正确,然后等一会儿,实在还是没显示,可以切换网络试一下,因为我们之前用了VPN,现在将VPN取消试一下。
6.测试代码
# visdom
import visdom
import torch as t
# 新建一个连接客户端
# 指定env=u'test1' 默认端口为8097 host为localhost
vis = visdom.Visdom(env=u'test1')
x = t.arange(1, 30, 0.01)
y = t.sin(x)
vis.line(X=x, Y=y, win='sinx', opts={'title': 'y=sin(x)'})
# append 追加数据
for ii in range(0, 10):
# y = x
x = t.Tensor([ii])
y = x
vis.line(X=x, Y=y, win='polynomial', update='append' if ii > 0 else None)
# 新增一条线
x = t.arange(0, 9, 0.1)
y = (x ** 2) / 9
vis.line(X=x, Y=y, win='polynomial', update='append', name='this is a new Trace')
# 可视化一张随机的黑白图片 H * W
vis.image(t.randn(64, 64).numpy())
# 可视化一张随机的彩色图片 C * H * W
vis.image(t.randn(3, 64, 64).numpy(), win='random2')
# 可视化36张随机的彩色图片 每一行6张 N * C * H * W
vis.images(t.randn(36, 3, 64, 64).numpy(), nrow=6, win='random3', opts={'title':'random_images'})
# vis.text 支持HTML标签
vis.text(u'''<h1>Hello visdom</h1> <br>visdom是Facebook专门为<b>PyTorch</b>开发的一个可视化工具,
在内部使用了很久,于2017年3月开源''',
win='visdom',
opts={'title': u'visdom简介'}
)
7.测试代码所对应的可视化图
在网页中输入:http://localhost:8097 便可呈现如下内容。