[PyTorch] 在windows下显示Linux中的tensorboard文件

简单记录tensorboard使用中的问题。

tensorboard使用

首先,使用conda命令安装后报错:TypeError: init() got an unexpected keyword argument ‘serialized_options’。
使用pip命令安装后,问题解决,推荐用pip安装:
pip install tensorboard

随后:

# 导入包
from torch.utils.tensorboard import SummaryWriter

# 定义writer
writer = SummaryWriter(log_dir='./log_dir', comment='scalars')

# 往writer中写入值
writer.add_scalar('y=2x', 2*x, y)

# 关闭writer
writer.close()

其中log_dir是日志存放路径,随后在命令行输入指令,进行可视化。

tensorboard --logdir=./log_dir

Windows下查看Linux中的tensorboard文件

另外,由于模型常常在服务器中运行,平常还需要在Windows系统中显示服务器中的tensorboard文件的结果。
cmd中登录远程服务器时,使用如下命令:

ssh -L 16006:127.0.0.1:6006 [email protected]

其中account是服务器中各自设定的用户名,server.address是服务器主机地址。(代替一般 ssh 远程登录命令:ssh [email protected]
训练完模型之后,在Linux正常使用如下命令,进行tensorboard文件的显示:

tensorboard --logdir=./log_dir

最后,在本地浏览器访问地址:http://127.0.0.1:16006/ 即可。

Mac未试过,也可尝试一下,Windows亲测有效。

值得注意的是,当可视化一个tensorboard文件之后,更改其他tensorboard文件后,再次执行上述命令,端口号与之前的端口号不同,且再次输入上述命令无法再正常显示,是因为之前的端口号被占用了。
因此,可以查看6006端口的PID进程ID

lsof -i:6006

并将占用这个端口的进程关闭(假设占用该端口的PID为19676):

kill -9 19676

然后再执行上述命令即可,也可以在执行的时候指定端口号:

tensorboard --logdir=./log_dir --port=6006

也可以直接指定另外一个端口号进行。
但是对于Windows下执行Linux中的tensorboard文件,这种情况由于一开始指定了端口号,所以更换端口后会导致无法显示,只能指定端口号,并将占用的PID删除。

参考:

  1. Pytorch深度学习——Tensorboard的使用:https://blog.csdn.net/qq_43263543/article/details/123612531
  2. 系统学习Pytorch笔记八:Tensorboard可视化与Hook机制:https://blog.csdn.net/wuzhongqiang/article/details/105612607
  3. Tensorboard 详解(上篇):https://blog.csdn.net/fendouaini/article/details/80344591
  4. Is it possible to see tensorboard over ssh?:https://stackoverflow.com/questions/38513333/is-it-possible-to-see-tensorboard-over-ssh
  5. 在服务器使用TensorBoard的方法:https://www.csdn.net/tags/MtTacgysNDc5NDQtYmxvZwO0O0OO0O0O.html
  6. tensorboard学习—— 解决tensorboard attempted to bind to port 6006,but it was already in use问题的几种方法:https://blog.csdn.net/c20081052/article/details/81974847

你可能感兴趣的:(model-pytorch,python,tensorboard,pytorch)