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基础教程之实现石头剪刀布游戏示例
Feb 11 Python
python发送邮件功能实现代码
Jul 15 Python
Python中装饰器高级用法详解
Dec 25 Python
python实现m3u8格式转换为mp4视频格式
Feb 28 Python
基于anaconda下强大的conda命令介绍
Jun 11 Python
python3.6的venv模块使用详解
Aug 01 Python
Python3转换html到pdf的不同解决方案
Mar 11 Python
基于python使用tibco ems代码实例
Dec 20 Python
python操作gitlab API过程解析
Dec 27 Python
基于keras 模型、结构、权重保存的实现
Jan 24 Python
python+flask编写一个简单的登录接口
Nov 13 Python
Selenium获取登录Cookies并添加Cookies自动登录的方法
Dec 04 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使用mb_check_encoding检查字符串在指定的编码里是否有效
2013/11/07 PHP
php通过淘宝API查询IP地址归属等信息
2015/12/25 PHP
javascript new一个对象的实质
2010/01/07 Javascript
超级24小时弹窗代码 24小时退出弹窗代码 100%弹窗代码(IE only)
2010/06/11 Javascript
理解Javascript_07_理解instanceof实现原理
2010/10/15 Javascript
利用javascript实现禁用网页上所有文本框,下拉菜单,多行文本域
2013/12/14 Javascript
eclipse导入jquery包后报错的解决方法
2014/02/17 Javascript
JavaScript中的Web worker多线程API研究
2014/12/06 Javascript
javascript中$(function() {});写与不写有哪些区别
2015/08/10 Javascript
学习JavaScript鼠标响应事件
2015/12/25 Javascript
javascript和jQuery实现网页实时聊天的ajax长轮询
2016/07/20 Javascript
微信小程序实战之运维小项目
2017/01/17 Javascript
基于JS实现二维码图片固定在右下角某处并跟随滚动条滚动
2017/02/08 Javascript
详谈Ajax请求中的async:false/true的作用(ajax 在外部调用问题)
2017/02/10 Javascript
jQuery ajax读取本地json文件的实例
2017/10/31 jQuery
js+html获取系统当前时间
2017/11/10 Javascript
详解简单易懂的 ES6 Iterators 指南和示例
2019/09/24 Javascript
javascript单张多张图无缝滚动实例代码
2020/05/10 Javascript
vscode 插件开发 + vue的操作方法
2020/06/05 Javascript
vue项目,代码提交至码云,iconfont的用法说明
2020/07/30 Javascript
Vue通过provide inject实现组件通信
2020/09/03 Javascript
玩转python爬虫之正则表达式
2016/02/17 Python
深入解析Python编程中super关键字的用法
2016/06/24 Python
Python中max函数用于二维列表的实例
2018/04/03 Python
PyTorch 1.0 正式版已经发布了
2018/12/13 Python
Python之修改图片像素值的方法
2019/07/03 Python
PyQt5实现简单的计算器
2020/05/30 Python
Django自带的用户验证系统实现
2020/12/18 Python
Css3圆角边框制作代码
2015/11/18 HTML / CSS
Stella McCartney官网:成衣、包袋、香水、内衣、童装及Adidas系列
2018/12/20 全球购物
越南综合购物网站:Lazada越南
2019/06/10 全球购物
Harman Audio官方商店:购买JBL、Harman Kardon、Infinity和AKG
2019/12/05 全球购物
中式餐厅创业计划书范文
2014/01/23 职场文书
市场部规章制度
2014/01/24 职场文书
幼儿园教师辞职信
2019/06/21 职场文书
文案策划岗位个人自我评价(范文)
2019/08/08 职场文书