当前位置:   article > 正文

日志分析工具:画出loss曲线_如何根据basicsr的日志画图

如何根据basicsr的日志画图

基本功能:生成loss图片,保存到log日志的同一目录下,取名与log文件一致;内容涉及正则化&plot画图技巧

在跑深度学习项目的时候,可能会有各种各样的log日志,写一个工具包可以快速画出loss图很方便。如果大家的日志和我的类似,可以取用我的代码做修改。

 我本次的项目日志分两种,分别是打印1个loss和打印3个loss,相关变量值可以在文件开头做修改。以下是我的两种日志:

  1. # -------------------------------------------------------------------------------
  2. # Description: 快速画出loss曲线
  3. # Description: 生成loss图片,保存到log日志的同一目录下,取名与log文件一致
  4. # Reference:
  5. # Author: Sophia
  6. # Date: 2021/7/12
  7. # -------------------------------------------------------------------------------
  8. import re
  9. import matplotlib.pyplot as plt
  10. import os.path as osp
  11. # fullpath = osp.abspath('../../log/log_train_train_img_model_xent_htri20210712-191400.txt')
  12. fullpath = osp.abspath('../log/log_train20210712-163303.txt')
  13. # mode = {'Loss'}
  14. mode = {'Loss', 'CLoss', 'TLoss'}
  15. filedir, filename = osp.split(fullpath)
  16. count = 0
  17. Loss, CLoss, TLoss, x = [], [], [], []
  18. with open(fullpath, 'r') as f:
  19. while True:
  20. line = f.readline()
  21. if line == '':
  22. break
  23. if not line.startswith('Epoch: ['):
  24. continue
  25. count += 1
  26. line = line.replace(' ', '').replace('\t', '')
  27. pattern = re.compile(r'[Loss]\w*.\w+[(](\w*.\w+)[)]')
  28. find_list = pattern.findall(line)
  29. if mode == {'Loss'}:
  30. Loss.append(float(find_list[0]))
  31. elif mode == {'Loss', 'CLoss', 'TLoss'}:
  32. Loss.append(float(find_list[0]))
  33. CLoss.append(float(find_list[1]))
  34. TLoss.append(float(find_list[2]))
  35. x.append(count)
  36. pngName = filename.split('.')[0]
  37. if mode == {'Loss'}:
  38. plt.plot(x, Loss)
  39. elif mode == {'Loss', 'CLoss', 'TLoss'}:
  40. plt.plot(x, Loss, color='red', marker='o', linestyle='dashed', linewidth=2, markersize=1)
  41. plt.plot(x, CLoss, color='green', marker='o', linestyle='dashed', linewidth=2, markersize=1)
  42. plt.plot(x, TLoss, color='blue', marker='o', linestyle='dashed', linewidth=2, markersize=1)
  43. plt.legend(labels=('Loss', 'CLoss', 'TLoss'))
  44. plt.savefig(osp.join(filedir, pngName))
  45. plt.show()

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/2023面试高手/article/detail/635964
推荐阅读
相关标签
  

闽ICP备14008679号