一、什么是Tensorboard
Tensorboard原本是Google TensorFlow的可视化工具,可以用于记录训练数据、评估数据、网络结构、图像等,并且可以在web上展示,对于观察神经网络的过程非常有帮助。PyTorch也推出了自己的可视化工具,一个是tensorboardX包,一个是torch.utils.tensorboard,二者的使用相差不大,这里介绍后者
二、怎么使用Tensorboard
首先展示该包的使用的大致流程
1)导入tensorboard,实例化SummaryWriter类,指明记录日记路径等信息
from torch.utils.tensorboard import SummaryWriter
#实例化SummaryWriter,并指明日志存放路径。在当前目录如果每月logs目录将自动创建
#如果不写log_dir,系统将会创建runs目录
writer = SummaryWriter(log_dir = ‘logs’)
#调用实例
writer.add_xxx()
#关闭writer
writer.close()
2)调用相应的API,接口一般格式为:
add_xxx(tag_name, object, iteration-number)
3)启动tensorboard,在命令行中输入
tensorboard --logdir=r’加logs所在路径’
4)复制网址在浏览器中打开
如果你有多个数据都在同一个网址打开可能比较麻烦
要想换一个网址,可以手动换一个端口
tensorboard --logdir=log --port=6007
使用各种add方法记录数据
单条曲线(scalar)
add_scalar(tag, scalar_value, global_step=None, walltime=None)
参数:
- tag ( string ) – 数据标识符
- scalar_value ( float或string/blobname ) – 要保存的值 y轴
- global_step ( int ) – 要记录的全局步长值 x轴
- walltime ( float ) – 记录训练的时间,默认 walltime (time.time()) 秒
- new_style ( boolean ) – 是使用新样式(张量字段)还是旧样式(simple_value 字段)。新样式可能会导致更快的数据加载。
注意:如果你一开始就写了一个 比如:
# y = 2x
for i in range(100):
writer.add_scalar("y=2x",2*i,i)
writer.close()
并且运行了,又在此基础上修改 比如将 2*i 改成 3*i 并运行,将会出现问题
解决方法:将一开始的 log 中的文件删掉