远程访问tensorboard和visdom

tensorboardvisdom是功能强大的两款可视化工具,极大地方便了深度学习的训练。在服务器端训练深度学习网络的时候,我们往往需要在本地端查看网络的训练情况。下面介绍下如何远程访问可视化工具。

远程访问tensorboard

  1. 使用如下命令登录服务器

    1
    2
    ssh -L 16006:127.0.0.1:6006 account@server.address
    # 表示将本地的16006端口,绑定服务器的6006端口。tensorboard默认将数据放在6006端口。ssh链接建立后,服务器6006端口接收到的数据会转发到本地16006端口。当然,也可以选择16006以外的端口建立ssh链接。
  2. 服务器端输入如下命令打开tensorboard:

    1
    tensorboard --logdir="/path/to/log-directory"
  3. 最后,本地访问地址: http://127.0.0.1:16006/即可远程访问tensorboard.

远程访问visdom

  1. 服务器端安装visdom

    1
    pip install visdom
  2. 服务器端启动visdom

    1
    2
    python -m visdom.server -p 2333
    # -p参数指定端口,缺省值为8097,这里,我们指定2333端口
  3. visdom实例代码

    1
    2
    3
    4
    5
    6
    # demo.py
    import visdom
    import numpy as np
    vis = visdom.Visdom(port=2333,env='example') //port缺省值为8097,env缺省值为'main'
    vis.text('Hello, world!')
    vis.image(np.ones((3, 10, 10)))

    运行 代码

    1
    python demo.py
  4. 本地通过浏览器访问远程服务器

    假设服务器的ip地址为10.21.21.21,则打开浏览器打开 http://10.21.21.21:2333即可看到visdom可视化界面(默认端口为8097,这里我们指定端口2333)。

  5. 外网访问

    一般公司的服务器在公司的内网中,为了安全性及ip的有限性,每台服务器通过指定端口与外界通信。假设服务器的公网ip为192.168.0.1,对应的端口为8333。这时,我们在浏览器输入http://192.168.0.1:2333是看不到结果的。我们需要将本地端口通过服务器端口8333,与服务器端口2333进行链接。命令如下:

    1
    ssh -L 16006:127.0.0.1:2333 -p 8333 account@server.address

    在浏览器输入http://127.0.0.1:16006即可远程访问visdom。