[深度学习 - 技巧] tensorboard实时查看损失和权重的变化

tensorboard

1. 安装tensorboard

如果有安装tensorflow的话,应该会默认安装对应版本的tensorboard。
因为我这边开发环境用的pytorch,所以没有安装tensorboard。
可以通过pip安装。
pip install tensorboard

2. 代码块

在自己的代码模块中添加这一块内容,我这里写的是每个epoch保存一次数据,当然数据量大,模型跑一个epoch慢的时候,可以自己选择n个batch保存一次。然后模型运行时候就会在目录中logs下生成一个log1目录,来保存模型训练的数据日志。

from torch.utils.tensorboard import SummaryWriter

summaryWriter = SummaryWriter("logs/log1")

for epoch in range(epochs):
    for data in data_loader:
    	# 训练代码块。
    	pass
	
	
    # 画折线图-----loss曲线
    summaryWriter.add_scalars("loss", {
    
    "total_loss": total}, iteration)
    # 画柱状图-----权重分布
    layer_weight = net.module.net.prediction_layers[0].weight
    summaryWriter.add_histogram("mask_layer_weight", mask_layer_weight, iteration)

3. 本地运行,实时查看

在命令行中进入到文件logs目录下输入:tensorboard --logdir=log1 --port=6006

logdir: 指定代码生成的那个目录。
port:指定访问的端口号,利用这个端口号可以实时查看数据的变化。

输入完如果成功运行会显示:TensorBoard 2.4.0 at http://localhost:6006/ (Press CTRL+C to quit) 就可以通过http://localhost:6006/查看数据的变化了。

4. 服务器上运行,本地实时查看(Xshell)

在Xshell属性上,SSH->隧道上添加转移,就可以在本地是查看http://localhost:6006/
监听

5. 可视化

这里我拿了我训练yolact++的log日志。
由于训练损失降得比较慢,而且到后面损失开始出现了较大幅度的震荡,所以我自己设置了多个节点让他学习率减半,可以看到学习率减半的节点处会有明显的下降趋势。

以及输出层的权重分布,权重如果是顶峰趋向越来越尖就是正常的。(损失和权重我认为是分析模型比较重要的两个点,你如果想看其他数据的变化,也可以用不同的可视化工具,具体可以查看官方的文档,还可以看网络结构图。https://tensorflow.google.cn/tensorboard/get_started

在这里插入图片描述

权重分布

猜你喜欢

转载自blog.csdn.net/weixin_41809530/article/details/111253479