events.out.tfevents文件信息提取

2023-12-13 15:41:50

深度学习训练数据有时候是记录在log文件中,文件名类型为events.out.tfevents.xxx.king,当然这些文件可以通过tensorbord工具可视化,这里提供一些events.out.tfevents文件信息提取的方法。

(1)events.out.tfevents多个文件可视化

当有多个训练的events.out.tfevents文件,将这些文件的log文件夹放在同一个文件夹中,如下图

这里有两个可视化命令,如果一个不好使可以换下一个

第一个是下面指令,其中path是所有文件夹的上一级文件夹,如上图所示的就是LOGS_TEST文件夹路径,相对路径不好使就绝对路径,--port=6006要是报错,就换报错信息的--port信息。

tensorboard --logdir=path --port=6006

有时候在本地的vscode使用上面的指令报错就用下面的

python -m tensorboard.main --logdir=D:\TEST\logs_test --port=6006 

?然后ctrl并点击下面的网址进入tensorboard可视化页面

?就能观察自己的训练数据

?(2)events.out.tfevents文件信息提取

当需要提取events.out.tfevents文件某个特殊的数值,就需要如下代码

from tensorboard.backend.event_processing import event_accumulator
ea = event_accumulator.EventAccumulator('D:/TEST/logs_test/logs/events.out.tfevents.1702090974.king')
# print(type(ea))   # <class 'tensorboard.backend.event_processing.event_accumulator.EventAccumulator'>
ea.Reload()  #(ea.scalars.Keys()): ['loss/train_loss', 'loss/train_loss_att', 'eval/MAE', 'eval/MSE']  
# print(ea.scalars.Keys())
train_loss = ea.scalars.Items('loss/train_loss')
MAE = ea.scalars.Items('eval/MAE')
MSE = ea.scalars.Items('eval/MSE')
# print(len(train_loss), len(MAE), len(MSE))   # 500 500 500
print(type(train_loss), type(MAE), type(MSE))  # <class 'list'> <class 'list'> <class 'list'>
train_value = []   # 创建空列表存储数值
MAE_value = []
MSE_value = []
for i, j , k in zip(train_loss, MAE, MSE):  
    # print(i.step, i.value)    # 读取每一步的数值
    # print(j.step, j.value)
    # print(k.step, k.value)
    train_value.append(i.value)
    MAE_value.append(j.value)
    MSE_value.append(k.value)
train_min = min(train_value)  
MAE_min  = min(MAE_value)
MSE_min = min(MSE_value)
print(train_min, MAE_min, MSE_min)  # 

?可以从events.out.tfevents文件中提取出其中的相关信息,注意一下文件中包含的items,然后根据item的信息提取就行了,如我的文件中就有四个items,可以只读取所有的信息,也可以找出训练过程中的最优数值

文章来源:https://blog.csdn.net/m0_73832962/article/details/134971788
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。