使用python读取tensorboard文件中的数据并写入到excel当中去

将数据从tensorboard中读出来



from tensorboard.backend.event_processing import event_accumulator  # 导入tensorboard的事件解析器
import xlsxwriter
import numpy as np

def Read_Tensorboard(path):  # path为tensoboard文件的路径
    ea = event_accumulator.EventAccumulator(path)  # 初始化EventAccumulator对象
    ea.Reload()  # 将事件的内容都导进去
    print(ea.scalars.Keys())
    val_dice = ea.scalars.Items("val/Dice.leakage")  # 根据上面打印的结果填写
    val_IoU = ea.scalars.Items("val/IoU.leakage")
    val_mAcc = ea.scalars.Items("val/mAcc")
    learning_rate = ea.scalars.Items("learning_rate")
    print(val_dice)
    print(len(val_dice))

    print([(i.step,i.value) for i in val_dice])

    Epoch=[]
    Dice=[]
    IoU=[]
    Acc=[]
    RL=[]
    for i in range(200):
        print(i+1,val_dice[i].value,val_IoU[i].value,val_mAcc[i].value,learning_rate[i].value)
        Epoch.append(i+1)
        Dice.append(val_dice[i].value)
        IoU.append(val_IoU[i].value)
        Acc.append(val_mAcc[i].value)
        RL.append(learning_rate[i].value)
    return Epoch,Dice,IoU,Acc,RL

将数据写入excel文件当中去


# 把列表Epoch, Dice, IoU, Acc, RL 都写入名为filename的excecl文件当中
def write_PR(Epoch, Dice, IoU, Acc, RL,filename):
    #参数p/r/t是等长的数组,p表示presion,r是recall,t是阈值
    workbook = xlsxwriter.Workbook(filename)
    worksheet = workbook.add_worksheet()

    worksheet.activate()  # 激活表
    title = ['epoch','F1_score','Iou','Accuracy','learning_rate'] # 设置表头
    worksheet.write_row('A1',title) # 从A1单元格开始写入表头


     # Start from the first cell below the headers.
    n_row = 2 #从第二行开始写
    for i in range(len(Epoch)):
        insertData=[Epoch[i],Dice[i],IoU[i],Acc[i],RL[i]]
        row = 'A' + str(n_row)
        worksheet.write_row(row, insertData)
        n_row=n_row+1
    workbook.close()

综合使用将tensorboard中的数据写入到excel当中去

if __name__ == '__main__':
    path = r"C:\Users\Administrator\Desktop\tf_logs\events.out.tfevents.1637844270.gp-System-Product-Name.1053.0"
    Epoch, Dice, IoU, Acc, RL=Read_Tensorboard(path)
    print(Epoch, Dice, IoU, Acc, RL)
    write_PR(Epoch, Dice, IoU, Acc, RL,'swim.xlsx')

你可能感兴趣的:(python,深度学习,机器学习)