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之再深点,更懂list
Sep 20 Python
Python中unittest用法实例
Sep 25 Python
Python使用metaclass实现Singleton模式的方法
May 05 Python
Python3控制路由器——使用requests重启极路由.py
May 11 Python
解决Python requests库编码 socks5代理的问题
May 07 Python
python的常用模块之collections模块详解
Dec 06 Python
python实现任意位置文件分割的实例
Dec 14 Python
浅谈python图片处理Image和skimage的区别
Aug 04 Python
django项目中使用手机号登录的实例代码
Aug 15 Python
Python检测端口IP字符串是否合法
Jun 05 Python
python 写一个文件分发小程序
Dec 05 Python
Python闭包的定义和使用方法
Apr 11 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
朋友网关于QQ相关的PHP代码(研究QQ的绝佳资料)
2015/01/26 PHP
如何使用微信公众平台开发模式实现多客服
2016/01/06 PHP
PHP实现提取多维数组指定一列的方法总结
2019/12/04 PHP
PHP加MySQL消息队列深入理解
2021/02/27 PHP
JavaScript 基础知识 被自己遗忘的
2009/10/15 Javascript
解决jquery插件冲突的问题
2014/01/23 Javascript
Node.js中HTTP模块与事件模块详解
2014/11/14 Javascript
使用jQuery仿苹果官网焦点图特效
2014/12/23 Javascript
text-align:justify实现文本两端对齐 兼容IE
2015/08/19 Javascript
seajs加载jquery时提示$ is not a function该怎么解决
2015/10/23 Javascript
基于Jquery制作图片文字排版预览效果附源码下载
2015/11/18 Javascript
Vue2.0 UI框架ElementUI使用方法详解
2017/04/14 Javascript
详解设置Webstorm 利用babel将ES6自动转码成ES5
2017/12/20 Javascript
JavaScript常见继承模式实例小结
2019/01/11 Javascript
Vue.js中的高级面试题及答案
2020/01/13 Javascript
[01:32]TI奖金增速竟因它再创新高!DOTA2勇士令状不朽珍藏Ⅰ饰品欣赏
2018/05/18 DOTA
[33:09]完美世界DOTA2联赛循环赛 Forest vs DM BO2第二场 10.29
2020/10/29 DOTA
Python实现115网盘自动下载的方法
2014/09/30 Python
详解python eval函数的妙用
2017/11/16 Python
不到40行代码用Python实现一个简单的推荐系统
2019/05/10 Python
Django项目创建到启动详解(最全最详细)
2019/09/07 Python
pycharm下pyqt4安装及环境配置的教程
2020/04/24 Python
python logging模块的使用
2020/09/07 Python
详解CSS3的图层阴影和文字阴影效果使用
2016/06/09 HTML / CSS
美国时尚在线:Showpo
2017/09/08 全球购物
AMAVII眼镜官网:时尚和设计师太阳镜
2019/05/05 全球购物
Ajax实现页面无刷新留言效果
2021/03/24 Javascript
学生感冒英文请假条
2014/02/04 职场文书
普通党员自我剖析材料
2014/10/07 职场文书
2014年设备管理工作总结
2014/11/26 职场文书
幼儿园教师个人总结
2015/02/05 职场文书
商场圣诞节活动总结
2015/05/06 职场文书
民事代理词范文
2015/05/25 职场文书
千手观音观后感
2015/06/03 职场文书
2016幼儿园教师节新闻稿
2015/11/25 职场文书
Python使用pandas导入csv文件内容的示例代码
2022/12/24 Python