Python用log文件绘制损失、准确率曲线

一、导入包

from matplotlib import rcParams
import matplotlib.pyplot as plt
import re

二、读取文件

##显示中文
rcParams['font.family'] = 'sans-serif'
rcParams['font.sans-serif'] = 'SimSun,Times New Roman'

##读取log文件
logFile = r'...\log-20210818-090024.log' 
text = ''
file = open(logFile)
for line in file:
    text += line
file.close()

三、正则表达式匹配训练集、验证集每个批次的数据

all_list = re.findall('step - loss: .*[0-9]',text)  

结果
在这里插入图片描述

正则表达式解释:’step - loss: .*[0-9]‘
因为log文件中每个批次的训练、验证数据以’step - loss‘开头,数字结尾
Python用log文件绘制损失、准确率曲线_第1张图片
四、从包含训练、验证数据的大列表中分割训练集损失、训练集准确率、验证集损失、验证集准确率

train_loss = []
for i in all_list:
    train_loss.append(float(i.split('step - loss:')[1].split('- accuracy')[0]))

train_acc = []
for i in all_list:
    train_acc.append(float(i.split('- accuracy:')[1].split('- val_loss:')[0]))

val_loss = []
for i in all_list:
    val_loss.append(float(i.split('- val_loss:')[1].split('- val_accuracy:')[0]))
    
val_acc = []
for i in all_list:
    val_acc.append(float(i.split('- val_accuracy:')[1]))

结果
在这里插入图片描述
五、绘图

plt.plot(train_loss,label='train_loss')
plt.plot(val_loss,label='val_loss')
plt.plot(train_acc,label='train_acc')
plt.plot(val_acc,label='val_acc')
plt.legend(loc='best')
plt.show()

结果
Python用log文件绘制损失、准确率曲线_第2张图片

你可能感兴趣的:(python,机器学习,正则表达式,深度学习)