020基于安全帽检测训练集编写Excel

一、

需要把YOLOv3训练的结果的各个值记录到Excel中,实现python脚本如下:

import re,xlwt
f = open("epoch.txt")
lines = f.readlines()
#新建工作簿
workbook = xlwt.Workbook(encoding='utf-8')
#新建sheet
sheet1 = workbook.add_sheet("测试表格")
#第1行第1列数据
sheet1.write(0,0,"loss")
#第1行第2列数据
sheet1.write(0,1,"yolo_layer_1_loss")
sheet1.write(0,2,"yolo_layer_2_loss")
sheet1.write(0,3,"yolo_layer_3_loss")
sheet1.write(0,4,"val_loss")
sheet1.write(0,5,"val_yolo_layer_1_loss")
sheet1.write(0,6,"val_yolo_layer_2_loss")
sheet1.write(0,7,"val_yolo_layer_3_loss")
lineNumber = 1
for line in lines:
    # print(line)
    values = re.findall(r"loss:\s+(\d+\.\d+)\s+\-\s+yolo_layer_1_loss: (\d+\.\d+)\s+\-\s+yolo_layer_2_loss: (\d+\.\d+)\s+\-\s+yolo_layer_3_loss: (\d+\.\d+)\s+\-\s+val_loss: (\d+\.\d+)\s+\-\s+val_yolo_layer_1_loss: (\d+\.\d+)\s+\-\s+val_yolo_layer_2_loss: (\d+\.\d+)\s+\-\s+val_yolo_layer_3_loss: (\d+\.\d+)",line)
    if len(values) >= 1:
        print(values)
        sheet1.write(lineNumber, 0, values[0][0])
        sheet1.write(lineNumber, 1, values[0][1])
        sheet1.write(lineNumber, 2, values[0][2])
        sheet1.write(lineNumber, 3, values[0][3])
        sheet1.write(lineNumber, 4, values[0][4])
        sheet1.write(lineNumber, 5, values[0][5])
        sheet1.write(lineNumber, 6, values[0][6])
        sheet1.write(lineNumber, 7, values[0][7])
        lineNumber = lineNumber+1
f.close()
workbook.save("test.xls")

效果如下:

 

posted @ 2021-12-23 01:03  arun_python  阅读(69)  评论(0编辑  收藏  举报