有时候在pytorch中使用tensorboard时,生成的指标名称不对,设置的指标名称是val_Acc,tensorboard中显示是val_Acc_,后面多一条下划线,强迫症看了比较难受。
可以通过如下代码进行修改:
from tensorboard.backend.event_processing import event_accumulator
from torch.utils.tensorboard import SummaryWriter
input_path = 'D:/logs/event.out.tfevents.xxxxx' # 输入需要指定event文件
output_path = 'D:/logs_output' # 输出只需要指定文件夹即可
# 读取需要修改的event文件
ea = event_accumulator.EventAccumulator(input_path)
ea.Reload()
tags = ea.scalars.Keys() # 获取所有scalar中的keys
# 写入新的文件
writer = SummaryWriter(output_path) # 创建一个SummaryWriter对象
for tag in tags:
scalar_list = ea.scalars.Items(tag)
if tag == 'val_Acc_': # 修改一下对应的tag即可
tag = tag[:-1]
for scalar in scalar_list:
writer.add_scalar(tag, scalar.value, scalar.step, scalar.wall_time) # 添加修改后的值到新的event文件中
writer.close() # 关闭SummaryWriter对象
其实我们看到,按照上面的代码,不仅可以修改scalar的tag,还可以修改对应的值,时间等等,都是可以修改的。
注意:
不要在已有的tag上再次添加相同的tag,不然tensorboard显示会有问题。
tensorboard中的每个日志的名称是event文件所在的文件夹的名称,因此,可以把生成的event文件所在的文件夹改个名字,tensorboard中的日志名称也就随之改变了。
最后记得刷新一下tensorboard。
求赞,有问题评论~