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实现监控linux性能及进程消耗性能的方法
Jul 25 Python
使用python实现knn算法
Dec 20 Python
安装python3的时候就是输入python3死活没有反应的解决方法
Jan 24 Python
Python对List中的元素排序的方法
Apr 01 Python
python基础教程项目二之画幅好画
Apr 02 Python
Python代码缩进和测试模块示例详解
May 07 Python
Centos 升级到python3后pip 无法使用的解决方法
Jun 12 Python
PyTorch读取Cifar数据集并显示图片的实例讲解
Jul 27 Python
使用Python实现租车计费系统的两种方法
Sep 29 Python
Python 从subprocess运行的子进程中实时获取输出的例子
Aug 14 Python
将Pytorch模型从CPU转换成GPU的实现方法
Aug 19 Python
简单介绍Python的第三方库yaml
Jun 18 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源代码
2013/06/26 PHP
php图片的二进制转换实现方法
2014/12/15 PHP
php邮箱地址正则表达式验证
2015/11/13 PHP
CodeIgniter钩子用法实例详解
2016/01/20 PHP
Smarty3配置及入门语法
2017/02/22 PHP
Laravel6.0.4中将添加计划任务事件的方法步骤
2019/10/15 PHP
jQuery 白痴级入门教程
2009/11/11 Javascript
改进版通过Json对象实现深复制的方法
2012/10/24 Javascript
JS 退出系统并跳转到登录界面的实现代码
2013/06/29 Javascript
利用jQuery简单实现产品展示图片左右滚动功能(示例代码)
2014/01/02 Javascript
jQuery淡入淡出元素让其效果更为生动
2014/09/01 Javascript
jQuery Validation Engine验证控件调用外部函数验证的方法
2017/01/18 Javascript
Bootstrap 表单验证formValidation 实现表单动态验证功能
2017/05/17 Javascript
JavaScript实现二叉树的先序、中序及后序遍历方法详解
2017/10/26 Javascript
vuejs 切换导航条高亮(路由菜单高亮)的方法示例
2018/05/29 Javascript
Elementui表格组件+sortablejs实现行拖拽排序的示例代码
2019/08/28 Javascript
在Vue 中实现循环渲染多个相同echarts图表
2020/07/20 Javascript
纯js+css实现在线时钟
2020/08/18 Javascript
你所不知道的Python奇技淫巧13招【实用】
2016/12/14 Python
python2.7+selenium2实现淘宝滑块自动认证功能
2018/02/24 Python
对python中if语句的真假判断实例详解
2019/02/18 Python
Python实现爬取亚马逊数据并打印出Excel文件操作示例
2019/05/16 Python
django框架模型层功能、组成与用法分析
2019/07/30 Python
python爬虫之爬取百度音乐的实现方法
2019/08/24 Python
django filter过滤器实现显示某个类型指定字段不同值方式
2020/07/16 Python
凯特方迪化妆品官网:Kat Von D Beauty
2016/11/15 全球购物
Stuart Weitzman欧盟:美国奢华鞋履品牌
2017/05/24 全球购物
YBF Beauty官网:美丽挚友,美国知名彩妆品牌
2020/11/22 全球购物
C#里面如何倒序排列一个数组的元素?
2013/06/21 面试题
部门活动策划方案
2014/08/16 职场文书
2014年检察院个人工作总结
2014/12/09 职场文书
人才市场接收函
2015/01/30 职场文书
2019年预备党员的思想汇报:加深对党的认知
2019/09/25 职场文书
Mac M1安装mnmp (Mac+Nginx+MySQL+PHP) 开发环境
2021/03/29 PHP
sql注入教程之类型以及提交注入
2021/08/02 MySQL
MySQL自定义函数及触发器
2022/08/05 MySQL