很好 passion!!!!
文章目录
如何可视化linux上的tensorboard监控日志
本帖子解决的问题是:tensorboard的日志在linux服务器端,那我如何查看可视化这个监控日志呢?
本博客介绍的方法是使用xshell实现的:
选择你要连接的会话,然后
step1 查看这个会话的属性
,
类似下面这个界面:
step2 接着操作这个界面,选择隧道
,
操作③界面:
(上图中源主机即本地PC机,目标主机即远程服务器。本地端口设置成了16006,远程服务器端口还是设置默认的tensorboard端口6006)
解释一下:默认的tensorboard端口是6006,通过访问http://localhost:6006
便可查看可视化界面。但是现在我们直接在自己的本地电脑端浏览器输入: http://localhost:16006
即可。
参考:【Pytorch】利用SSH查看远程服务器上的tensorboard可视化界面
可视化的tensorboard日志的命令
一般常用的可视化单个日志的命令
tensorboard --logdir="xxxx"
⚠️:参数logdir
不需要包含日志的名字,只需要写到日志所在的文件夹名字即可。
如何一下子可视化多个日志,并显示在同一张图中方便比较呢?
如果你的日志现在是这样存放的:
那你现在要一下子可视化这两个日志的话,只需要在此创建两个文件夹,然后将这两个日志分别剪切进去即可,
文件夹的名字随便取,但是这个名字是可视化的时候网页上显示的名字。
关于tensorboard的使用来记录所需的信息
记录images
记录标量指标
如何记录下深度学习中的args
有这个需求是因为我有时候实验会有很多的参数设置,然而我不可能准确记下每一次的实验参数,所以我想让tensorboard可以记下我的args参数。
我的想法是通过表格来展示各种参数,因为我知道wandb是有这个方法的,但是我找了很久的帖子,发现tensorboard没有。因此,只能自定义一个方法,借助网页显示的markdown来用table可视化参数。
def show_args_as_table(args):
args_dict = vars(args)
# Method 3: Save as Table
html_table = "<table>"
html_table += "<tr><th>Parameter</th><th>Value</th></tr>"
for key, value in args_dict.items():
html_table += f"<tr><td>{key}</td><td>{value}</td></tr>"
html_table += "</table>"
writer.add_text("CommandLineArgs/Table", html_table)
当然,我们可以在args设置一个参数为“describe” ,这个参数可以用来描述当前的方法的一些特征,中文或者英文都可以。
argparser.add_argument('--describe', type=str, default="revision;cond guidance, really old Encoder,old Decoder,add real skip connection, add batch=4, stop step100")
效果如下:
更新20241118 关于启动成功但是仍然打不开网页
- 今天突然tensorboard发疯,明明启动成功了,但是当我访问网址16006的时候,仍然显示不出来内容。不要慌,可以
清理一下浏览器的缓存
,然后再尝试一下,或许就可以了。 - 但也有可能是当前的端口被服务器上的其他人占用着,所以当他在使用的时候,你就没法使用了,不过最简单的办法就是咱们改一下端口号,比如不使用16006,换成16008.
更新20241226 关于使用的报错
今天我在看别人代码的时候,发现他在最后使用了下面的代码:
# export scalar data to JSON for external processing
writer.export_scalars_to_json("./all_scalars.json")
然后我想着我也要使用这个(但是其他我之前没见过这种使用方法),结果我试了之后报错如下:
‘SummaryWriter’ object has no attribute ‘export_scalars_to_json’
后来才知道,原来是因为我们使用的库不同:
# 别人导入的库
from tensorboardX import SummaryWriter
......
......
writer.export_scalars_to_json("./all_scalars.json")
writer.close()
# 而我自己使用的库是
from torch.utils.tensorboard import SummaryWriter
#使用这个库是不能用上述的代码的
今天又涨知识了!