写在.log文件里的数据
INFO:main, 2021-06-10 01:36:19,323, epoch, 0001, 2.339967, 1.584599, 0.011656, 0.007749
INFO:main, 2021-06-10 01:46:54,584, epoch, 0002, 0.753474, 1.345162, 0.008827, 0.006091
INFO:main, 2021-06-10 01:57:29,389, epoch, 0003, 0.222668, 0.259708, 0.009742, 0.010217
…………
INFO:main, 2021-06-12 06:14:33,434, epoch, 0298, 0.330606, 0.211101, 0.009838, 0.008360
INFO:main, 2021-06-12 06:25:15,200, epoch, 0299, 0.689183, 0.246770, 0.008211, 0.006980
INFO:main, 2021-06-12 06:35:57,250, epoch, 0300, 0.779274, 0.130041, 0.009465, 0.008848
用折线图表示最后四个指标running_loss, val_loss, running_gloss, val_gloss
from pylab import *
mpl.rcParams['font.sans-serif'] = ['SimHei'] # 添加这条可以让图形显示中文
l=[]
y1=[]
y2=[]
y3=[]
y4=[]
for line in open('ex1_pointlk_0915.log', 'r'): # 一行行打开文件
data = line.replace('\n', '') #替换行尾换行符
#data =line.rstrip('\n')# 移除行尾换行符
y1.append(float(data.split(',')[-4]))
y2.append(float(data.split(',')[-3]))
y3.append(float(data.split(',')[-2]))
y4.append(float(data.split(',')[-1])) #按','来分列,没有','、本来后接换行符的那列是最后一列,
# (比如 0.481951, 0.424831, 0.007695, 0.006404 则0.006404是最后一列)
import matplotlib.pyplot as plt
x = [i+1 for i in range(300)]
#plt.title('性能图') # 折线图标题
plt.xlabel('epoch数') # x轴标题
plt.ylabel('gloss大小') # y轴标题
# plt.plot(x, y1) # 绘制折线图,添加数据点,设置点的大小
# plt.plot(x, y2)
plt.plot(x, y3)
plt.plot(x, y4)
#running_loss, val_loss, running_gloss, val_gloss
#'running_loss', 'val_loss'
#, ' running_gloss', ' val_gloss'
plt.legend(['running_gloss', 'val_gloss']) # 设置折线名称
plt.show() # 显示折线图
#绘制多条折线原文链接:https://blog.csdn.net/daybreak___/article/details/107752519
#绘制折线图语句说明https://blog.csdn.net/AXIMI/article/details/99308004