今天师兄想看一看log文件中记录的各个loss都是怎样变化的,但是发愁这里面都是一些字符啊(如下图所示)。他想利用tensorboard进行一个可视化~
于是乎,我们就写了一个简单的代码,实现一下这个功能~
这是log文件里的样子~
在看代码之前,让我们先说一下代码逻辑!(学学逻辑才能改嘛坏笑~)
其实就是把log文件一行一行读入,然后把str转换为字典,然后取值,最后通过SummaryWriter进行add_add_scalar操作。(就是这么简单~~)
上代码:::
import json
from tensorboardX import SummaryWriter
from torch.utils.tensorboard import SummaryWriter
if __name__ == '__main__':
writer = SummaryWriter('./runs/exp') # 实例化writer
log = r"巴拉巴拉.log"
i = 0
for line in open(log, 'r', encoding='utf-8'):
# print(line) # 按照每一行分开
# print(type(line)) # <class 'str'>
# 把str转化为字典
dic_line = json.loads(line)
# print(dic_line)
# print(type(dic_line))
# 取 键data的值
key_data = dic_line.get("data") # 获取
# print(key_data)
# print(type(key_data))
# 取data里的 loss的值
key_loss = key_data.get("loss") # 获取
# print(key_loss)
# print(type(key_loss))
# 取"T"
key_loss_T = key_loss.get("T") # 获取T
print(key_loss_T)
print(type(key_loss_T))
# 写!!
i += 1
writer.add_scalar("Total_loss", key_loss_T, i)
writer.close()