pytorch tensorboard
转载:https://zhuanlan.zhihu.com/p/103630393
安装
pip install tensorboard
使用逻辑
- 将代码运行过程中的,某些你关心的数据保存在一个文件夹中
这一步由代码中的writer完成 - 再读取这个文件夹中的数据,用浏览器显示出来
这一步通过在命令行运行tensorboard完成。
使用代码
from torch.utils.tensorboard import SummaryWriter
writer = SummaryWriter('./path/to/log')
# 针对数值
writer.add_scalar(tag, scalar_value, global_step=None, walltime=None)
这里的tag指定可视化时这个变量的名字,scalar_value是你要存的值,global_step可以理解为x轴坐标。
简单例子
for epoch in range(100)
mAP = eval(model)
writer.add_scalar('mAP', mAP, epoch)
除了数值还能展示图像
命令行启动tensorboard
tensorboard --logdir=./path/to/the/folder --port 6006
然后打开浏览器,访问地址http://localhost:6006/即可。这里的6006只是随便一个例子,用其他的未被占用端口也没有任何问题,注意命令行的端口与浏览器访问的地址同步。
另一点要注意的是tensorboard并不是实时显示(visdom是完全实时的),而是默认30秒刷新一次。
其他使用
1.变量归类
命名变量的时候可以使用形如
writer.add_scalar('loss/loss1', loss1, epoch)
writer.add_scalar('loss/loss2', loss2, epoch)
writer.add_scalar('loss/loss3', loss3, epoch)
这样3个loss就会被显示在同一个section。
2.同时显示多个折线图
假如使用了两种学习率去训练同一个网络,想要比较它们训练过程中的loss曲线,只需要将两个日志文件夹放到同一目录下,并在命令行运行
tensorboard --logdir=./path/to/the/root --port 6006
3.add_scalar
和add_scalars
参考:https://www.zhihu.com/question/294537782
法与add_scalar
的差别在于add_scalars
在一张图中可以绘制多个曲线,我们只需要以字典的形式传入参数即可
add_scalar
使用
for epoch, (train_loss, val_loss) in enumerate(zip(train_losses, val_losses)):
writer.add_scalars('Loss', {'train loss': train_loss, 'val loss': val_loss}, epoch)
writer.add_scalar('Train', train_loss, epoch)
writer.add_scalar('Validation', val_loss, epoch)

add_scalars
使用
train_losses, val_losses = train(net, *data, num_epochs, learning_rate,weight_decay, batch_size)
writer = SummaryWriter(f'./logs/mynet/fold_{i + 1}')
for epoch, (train_loss, val_loss) in enumerate(zip(train_losses, val_losses)):
writer.add_scalars('Loss', {'train loss': train_loss, 'val loss': val_loss}, epoch)

【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!