pytorch用tensorboard实时生成loss图像

解决错误

错误代码

No module named ‘tensorboard‘

解决方式

进入虚拟环境依次输入以下指令
conda update pytorch torchvision
pip install tensorboard

如何开始

写代码

  • 打开训练的py文件
  • 顶部导入库
    from torch.utils.tensorboard import SummaryWriter
  • 在训练的代码的epoch外面写下面的代码
    (log_dir是保存loss的位置,如果位置不存在会自动创建)
    (flush_secs=20是每20秒保存一次)
    writer = SummaryWriter(log_dir='runs/result',flush_secs=20)
  • 在输出loss的语句下面写
    (epoch*len(train_dataloader)+i就是输出图像的横坐标,epoch是什么都懂,train_dataloader就是训练用的dataloader的实例对象,i就是索引)
    writer.add_scalar('Train/Loss', loss.item(), epoch*len(train_dataloader)+i)
  • 打开anaconda prompt,切换到有pytorch的虚拟环境,再用cd切换到保存tensorboard文件的绝对路径位置
  • 输入以下命令
    tensorboard --logdir=./
  • 复制在黑框里出现的url在浏览器打开
  • 此时已经进入tensorboard但是它不会自动刷新图像,点击右上角的齿轮,把Reload data打勾,再把Reload period改成30就可以了!
    image
    image

for ??? in enumerate(?)的作用

for x,y in enumerate(数组):
	print(x,y)

输出的x是数组值的下标
输出的y是数组的值

关于Visdom的说明

和tensorboard用法类似

  • 先用vis = Visualizer(env="")
  • 然后用vis.plot_many_stack()
posted @ 2021-08-18 14:25  猪猪猪猪侠  阅读(1592)  评论(0编辑  收藏  举报