python保存log日志,实现用log日志画图


Posted in Python onDecember 24, 2019

在神经网络训练中,我们常常需要画出loss function的变化图,log日志里会显示每一次迭代的loss function的值,于是我们先把log日志保存为log.txt文档,再利用这个文档来画图。

1,先来产生一个log日志。

import mxnet as mx
import numpy as np
import os
import logging
logging.getLogger().setLevel(logging.DEBUG)

# Training data
logging.basicConfig(filename = os.path.join(os.getcwd(), 'log.txt'), level = logging.DEBUG) # 把log日志保存为log.txt
train_data = np.random.uniform(0, 1, [100, 2])
train_label = np.array([train_data[i][0] + 2 * train_data[i][1] for i in range(100)])
batch_size = 1
num_epoch=5
# Evaluation Data
eval_data = np.array([[7,2],[6,10],[12,2]])
eval_label = np.array([11,26,16])
train_iter = mx.io.NDArrayIter(train_data,train_label, batch_size, shuffle=True,label_name='lin_reg_label')
eval_iter = mx.io.NDArrayIter(eval_data, eval_label, batch_size, shuffle=False)
X = mx.sym.Variable('data')
Y = mx.sym.Variable('lin_reg_label')
fully_connected_layer = mx.sym.FullyConnected(data=X, name='fc1', num_hidden = 1)
lro = mx.sym.LinearRegressionOutput(data=fully_connected_layer, label=Y, name="lro")
model = mx.mod.Module(
  symbol = lro ,
  data_names=['data'],
  label_names = ['lin_reg_label'] # network structure
)
model.fit(train_iter, eval_iter,
      optimizer_params={'learning_rate':0.005, 'momentum': 0.9},
      num_epoch=20,
      eval_metric='mse',)
model.predict(eval_iter).asnumpy()
metric = mx.metric.MSE()
model.score(eval_iter, metric)

上面的代码中logging.basicConfig(filename = os.path.join(os.getcwd(), 'log.txt'), level = logging.DEBUG) # 把log日志保存为log.txt 就是把log日志保存为log.txt文件。

2,log.txt文档如下。

INFO:root:Epoch[0] Train-mse=0.470638
INFO:root:Epoch[0] Time cost=0.047
INFO:root:Epoch[0] Validation-mse=73.642301
INFO:root:Epoch[1] Train-mse=0.082987
INFO:root:Epoch[1] Time cost=0.047
INFO:root:Epoch[1] Validation-mse=41.625072
INFO:root:Epoch[2] Train-mse=0.044817
INFO:root:Epoch[2] Time cost=0.063
INFO:root:Epoch[2] Validation-mse=23.743375
INFO:root:Epoch[3] Train-mse=0.024459
INFO:root:Epoch[3] Time cost=0.063
INFO:root:Epoch[3] Validation-mse=13.511120
INFO:root:Epoch[4] Train-mse=0.013431
INFO:root:Epoch[4] Time cost=0.063
INFO:root:Epoch[4] Validation-mse=7.670062
INFO:root:Epoch[5] Train-mse=0.007408
INFO:root:Epoch[5] Time cost=0.063
INFO:root:Epoch[5] Validation-mse=4.344374
INFO:root:Epoch[6] Train-mse=0.004099
INFO:root:Epoch[6] Time cost=0.063
INFO:root:Epoch[6] Validation-mse=2.455608
INFO:root:Epoch[7] Train-mse=0.002274
INFO:root:Epoch[7] Time cost=0.062
INFO:root:Epoch[7] Validation-mse=1.385449
INFO:root:Epoch[8] Train-mse=0.001263
INFO:root:Epoch[8] Time cost=0.063
INFO:root:Epoch[8] Validation-mse=0.780387
INFO:root:Epoch[9] Train-mse=0.000703
INFO:root:Epoch[9] Time cost=0.063
INFO:root:Epoch[9] Validation-mse=0.438943
INFO:root:Epoch[10] Train-mse=0.000391
INFO:root:Epoch[10] Time cost=0.125
INFO:root:Epoch[10] Validation-mse=0.246581
INFO:root:Epoch[11] Train-mse=0.000218
INFO:root:Epoch[11] Time cost=0.047
INFO:root:Epoch[11] Validation-mse=0.138368
INFO:root:Epoch[12] Train-mse=0.000121
INFO:root:Epoch[12] Time cost=0.047
INFO:root:Epoch[12] Validation-mse=0.077573
INFO:root:Epoch[13] Train-mse=0.000068
INFO:root:Epoch[13] Time cost=0.063
INFO:root:Epoch[13] Validation-mse=0.043454
INFO:root:Epoch[14] Train-mse=0.000038
INFO:root:Epoch[14] Time cost=0.063
INFO:root:Epoch[14] Validation-mse=0.024325
INFO:root:Epoch[15] Train-mse=0.000021
INFO:root:Epoch[15] Time cost=0.063
INFO:root:Epoch[15] Validation-mse=0.013609
INFO:root:Epoch[16] Train-mse=0.000012
INFO:root:Epoch[16] Time cost=0.063
INFO:root:Epoch[16] Validation-mse=0.007610
INFO:root:Epoch[17] Train-mse=0.000007
INFO:root:Epoch[17] Time cost=0.063
INFO:root:Epoch[17] Validation-mse=0.004253
INFO:root:Epoch[18] Train-mse=0.000004
INFO:root:Epoch[18] Time cost=0.063
INFO:root:Epoch[18] Validation-mse=0.002376
INFO:root:Epoch[19] Train-mse=0.000002
INFO:root:Epoch[19] Time cost=0.063
INFO:root:Epoch[19] Validation-mse=0.001327

3,利用log.txt文件来画图。

import re
import matplotlib.pyplot as plt
import numpy as np


def main():
  file = open('log.txt','r')
  list = []
  # search the line including accuracy
  for line in file:
    m=re.search('Train-mse', line)
    if m:
      n=re.search('[0]\.[0-9]+', line) # 正则表达式
      if n is not None:
        list.append(n.group()) # 提取精度数字
  file.close()
  plt.plot(list, 'go')
  plt.plot(list, 'r')
  plt.xlabel('count')
  plt.ylabel('accuracy')
  plt.title('Accuracy')
  plt.show()

if __name__ == '__main__':
  main()

以上这篇python保存log日志,实现用log日志来画图就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
深入Python解释器理解Python中的字节码
Apr 01 Python
python登录豆瓣并发帖的方法
Jul 08 Python
使用 Python 实现微信群友统计器的思路详解
Sep 26 Python
在Django中URL正则表达式匹配的方法
Dec 20 Python
Python3实现的判断环形链表算法示例
Mar 07 Python
Python及Pycharm安装方法图文教程
Aug 05 Python
python基础 range的用法解析
Aug 23 Python
keras slice layer 层实现方式
Jun 11 Python
解决Keras自带数据集与预训练model下载太慢问题
Jun 12 Python
如何用Python进行时间序列分解和预测
Mar 01 Python
Python提取PDF指定内容并生成新文件
Jun 09 Python
Python中的套接字编程是什么?
Jun 21 Python
Django 限制访问频率的思路详解
Dec 24 #Python
python 统计文件中的字符串数目示例
Dec 24 #Python
如何基于python操作json文件获取内容
Dec 24 #Python
解决python 读取 log日志的编码问题
Dec 24 #Python
python实现按关键字筛选日志文件
Dec 24 #Python
python 实现提取log文件中的关键句子,并进行统计分析
Dec 24 #Python
Python3.7+tkinter实现查询界面功能
Dec 24 #Python
You might like
PHP格式化MYSQL返回float类型的方法
2016/03/30 PHP
PHP strcmp()和strcasecmp()的区别实例
2016/11/05 PHP
PHPExcel导出2003和2007的excel文档功能示例
2017/01/04 PHP
jquery中对表单的基本操作代码
2010/07/29 Javascript
DB.ASP 用Javascript写ASP很灵活很好用很easy
2011/07/31 Javascript
JSON无限折叠菜单编写实例
2013/12/16 Javascript
node.js中的path.dirname方法使用说明
2014/12/09 Javascript
整理AngularJS框架使用过程当中的一些性能优化要点
2016/03/05 Javascript
AngularJS框架中的双向数据绑定机制详解【减少需要重复的开发代码量】
2017/01/19 Javascript
EasyUI中的dataGrid的行内编辑
2017/06/22 Javascript
基于vue-simplemde实现图片拖拽、粘贴功能
2018/04/12 Javascript
详解VueJs中的V-bind指令
2018/05/03 Javascript
JS引用传递与值传递的区别与用法分析
2018/06/01 Javascript
jQuery移动端跑马灯抽奖特效升级版(抽奖概率固定)实现方法
2019/01/18 jQuery
Vue动态生成el-checkbox点击无法赋值的解决方法
2019/02/21 Javascript
JavaScript碰撞检测原理及其实现代码
2020/03/12 Javascript
JavaScript实现电灯开关小案例
2020/03/30 Javascript
Openlayers实现地图的基本操作
2020/09/28 Javascript
解决Vue watch里调用方法的坑
2020/11/07 Javascript
[01:31](回顾)杀出重围,决战TI之巅
2014/07/01 DOTA
[03:34]2014DOTA2西雅图国际邀请赛 淘汰赛7月15日TOPPLAY
2014/07/15 DOTA
python中使用sys模板和logging模块获取行号和函数名的方法
2014/04/15 Python
Python 实现删除某路径下文件及文件夹的实例讲解
2018/04/24 Python
Django进阶之CSRF的解决
2018/08/01 Python
Python中使用logging和traceback模块记录日志和跟踪异常
2019/04/09 Python
Python 类属性与实例属性,类对象与实例对象用法分析
2019/09/20 Python
python 简单的调用有道翻译
2020/11/25 Python
详解Python中@staticmethod和@classmethod区别及使用示例代码
2020/12/14 Python
L’urv官网:精品女性运动服品牌
2019/07/07 全球购物
教育实习生的自我评价分享
2013/11/21 职场文书
捐赠仪式主持词
2014/03/19 职场文书
廉洁自律个人总结
2015/02/14 职场文书
2015年医院保卫科工作总结
2015/07/23 职场文书
2016年清明节期间群众祭祀活动工作总结
2016/04/01 职场文书
咖啡厅里的创业计划书
2019/08/21 职场文书
Tomcat安装使用及部署Web项目的3种方法汇总
2022/08/14 Servers