Pytorch使用tensorboard

0、安装

1、浏览器中显示

  • 在终端中输入:tensorboard --logdir=runs(这里的runs表示tensorboard文件所在的文件夹,当前版本中默认文件夹就是runs),接着会提示:
    在这里插入图片描述
  • 如果在服务器上运行,则可以通过端口转发的方式在本地来进行查看,参考这篇
  • 如果进行端口转发,注意默认使用的端口是不是默认的6006端口!

2、Tesorboard使用

  • 记录模型的权重、偏置、梯度信息
    from torch.utils.tensorboard import SummaryWriter
    # writer = SummaryWriter('runs/mnist_experiment_1')# 可以自定义保存的文件夹
    writer = SummaryWriter() # 默认保存文件夹为runs
    
    for e in range(epochs):
    	
    	.....
    	模型训练代码
    	.....
    	
    	# 记录权重、偏置、梯度信息
    	for name, layer in model.named_parameters():
            writer.add_histogram(name + '_grad', layer.grad.cpu().data.numpy(), e+1)
            writer.add_histogram(name + '_data', layer.cpu().data.numpy(), e+1)
    
  • 记录损失信息
    • loss、accuracy 等都是数值,也即Scalars
    • add_scalar(tag, scalar_value, global_step=None, walltime=None)
      • tag:记录的这个数值的标签(比如 training_loss 等);常用的一个方法是将 tag 值设置为 section/plot,Tensorboard 会按照 section 来给结果分组,如:‘train/loss’
      • global_step:通常是曲线图里的 x 轴,如果不设置则默认一直为 0,可以设置为epochs
      • walltime:记录时间戳,默认是系统当前时间 time.time()
    • 示例
    writer.add_scalar('Train/Loss', loss.item(), epoch)
    #writer.flush()
    
    writer.add_scalar('Test/Loss', test_loss, epoch)
    writer.add_scalar('Test/Accuracy', accuracy, epoch)
    #writer.flush()
    
  • 记录模型结构
    • writer.add_graph(net, images)
      • net:要可视化的模型结构
      • images:可以随机产生一个满足网络输入的tensor
    • 当前的PyTorch版本似乎不太稳定,有时无法画出网络的结构图
    • 示例
    net = MyNet()
    net_input = torch.rand(128,3,28,28)
    writer.add_graph(net, net_input)
    writer.close()
    

3、参考资料

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值