应用场景
代码跑在远程服务器上,我们想要获取它的运行情况(例如当前损失、准确率等)
方法一:使用SSH连接,从terminal的输出了解(如果SSH断线或断网,正在执行的程序将停止,重新连接需要重新运行,我们可以搭配tmux来保证SSH断线程序不终止)
方法二:在程序中将运行数据写入Tensorboard,使用SSH的隧道功能将远程主机的端口映射到本地端口。使用tmux启动两个session,一个session中运行程序,另一个session中启动Tensorboard。
方法一示范
# test.py
import time
for i in range(100000):
time.sleep(1)
print(i)
- 使用XShell连接远程主机
- tmux new -s test,新建一个名称为test的session
- python test.py执行程序,它将不间断的输出递增的整数
方法二示范
# test.py
from torch.utils.tensorboard import SummaryWriter
import time
writer = SummaryWriter("logs")
for i in range(100000):
time.sleep(1)
print(i)
writer.add_scalar("tttt", i ** 2 + 1, i)
writer.close()
-
在XShell左侧会话管理器窗口 当前的正在使用的会话上 右键->属性->连接->SSH->隧道->添加
下图 红框 中的端口号可以自己选择
-
tmux new -s test 新建一个名为test的session
python test.py执行程序,它将不间断的向Tensorboard写入递增的整数
ctrl+b+d 退出当前会话但不终止正在运行的程序test.py
-
tmux new -s tb 新建一个tb的session
执行指令tensorboard --logdir=logs --port=<port_name>启动Tensorboard
1) 在logs文件夹所在路径执行该指令,否则将logs改为相对路径或绝对路径
2) --port=<port_name>为1中红框的端口号,如果使用6006,那么可以简写为tensorboard --logdir=logs
ctrl+b+d 退出当前会话但不终止正在运行的Tensorboard
-
在本地浏览器 输入 http://localhost:<port_name> 或 http://127.0.0.1:<port_name> 访问,该页面不会自动刷新,通过手动刷新来获取最新数据(右上角Tensorboard刷新/左上角浏览器刷新)