Python 绘制Loss和Epoch二维折线图

Python 正则提取log日志中的Loss和Epoch信息,绘制二维折线图

  • 类似的文章链接:
    • https://www.cnblogs.com/marszhw/p/10962903.html(代码参考)
    • https://cxymm.net/article/weixin_40293250/107029595

  • 文章一:使用的方法是读取txt指定位置的关键词,简单明了,但是如果每一行有变动,则提取的信息不全。

  • 我使用正则的方法提取数据,效果更好一些。但是要注意正则提取出的数据格式为str,需要转换成float,具体操作可以看代码:

  • 稍加修改,这个代码同样适用于prediction vs epoch, xxx vs epoch…

# coding:utf-8
import matplotlib.pyplot as plt
import re

# result.txt 来自训练模型输出的log日志
data_dir = "/Users/xxx/Code/Script/result.txt"
Train_Loss_list = []
Train_Accuracy_list = []
Valid_Loss_list = []
Valid_Accuracy_list = []
f1 = open(data_dir,'r')
data = []


for line in f1:
    if(line.find('[train][INFO]')>=0):
        pattern = re.compile(r'"train_loss": "(.*?)"')   # 查找数字
        result1 = pattern.findall(line)
        result1 = float(result1[0])
        Train_Loss_list.append(result1)
f1.close()

#迭代了97次,所以x的取值范围为(0,97),
x1 = range(97)
y1 = Train_Loss_list
plt.plot(x1, y1,label="Train_Loss_list")
plt.show()


# Plot教程:
# https://cxymm.net/article/weixin_40293250/107029595


你可能感兴趣的:(python,plot)