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)