Python 写入训练日志文件并控制台输出解析


Posted in Python onAugust 13, 2019

1. 背景

在深度学习的任务中,通常需要比较长时间的训练,因此我们会选择离开电脑。笔者在跟踪模型表现,

观察模型accuracy 以及 loss 的时候,比较传统的方法是在控制台print输出或者直接使用tensorboard。

但如果是你需要远程观察模型表现,那一个时刻记录的log 文件就非常重要。

(如果你希望不在实验室,远程通过访问正在训练网络的服务器的Jupyter Notebook ,实时查看实验进度。请参考——远程连接服务器端Jupyter Notebook)

2. logging 函数

创建 .log 文件并将一些数据在控制台输出可以通过logging 函数实现。

废话不多,直接贴代码:一下函数可以在你想要保存日志文件的路径——output_dir下生成一个.log 文件,文件名以年.月.日.时.分命名,以免重复。

import logging
import time
import os
def log_creater(output_dir):
  if not os.path.exists(output_dir):
    os.makedirs(output_dir)
  log_name = '{}.log'.format(time.strftime('%Y-%m-%d-%H-%M'))
  final_log_file = os.path.join(output_dir,log_name)
  # creat a log
  log = logging.getLogger('train_log')
  log.setLevel(logging.DEBUG)

  # FileHandler
  file = logging.FileHandler(final_log_file)
  file.setLevel(logging.DEBUG)

  # StreamHandler
  stream = logging.StreamHandler()
  stream.setLevel(logging.DEBUG)

  # Formatter
  formatter = logging.Formatter(
    '[%(asctime)s][line: %(lineno)d] ==> %(message)s')

  # setFormatter
  file.setFormatter(formatter)
  stream.setFormatter(formatter)

  # addHandler
  log.addHandler(file)
  log.addHandler(stream)

  log.info('creating {}'.format(final_log_file))
  return log

3. 结果

保存后的日志文件差不多就是这样:

Python 写入训练日志文件并控制台输出解析

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
用Python脚本来删除指定容量以上的文件的教程
May 04 Python
详解Swift中属性的声明与作用
Jun 30 Python
Python中使用asyncio 封装文件读写
Sep 11 Python
Python 3中print函数的使用方法总结
Aug 08 Python
python+opencv实现的简单人脸识别代码示例
Nov 14 Python
python中plot实现即时数据动态显示方法
Jun 22 Python
Python读取txt文件数据的方法(用于接口自动化参数化数据)
Jun 27 Python
浅析python的Lambda表达式
Feb 27 Python
对pyqt5多线程正确的开启姿势详解
Jun 14 Python
解决Pycharm的项目目录突然消失的问题
Jan 20 Python
python使用for...else跳出双层嵌套循环的方法实例
May 17 Python
python游戏开发Pygame框架
Apr 22 Python
基于MATLAB和Python实现MFCC特征参数提取
Aug 13 #Python
Python 使用 docopt 解析json参数文件过程讲解
Aug 13 #Python
Django项目中实现使用qq第三方登录功能
Aug 13 #Python
一篇文章搞定Python操作文件与目录
Aug 13 #Python
Python Django Cookie 简单用法解析
Aug 13 #Python
Django中ajax发送post请求 报403错误CSRF验证失败解决方案
Aug 13 #Python
Python人工智能之路 jieba gensim 最好别分家之最简单的相似度实现
Aug 13 #Python
You might like
浅析php fwrite写入txt文件的时候用 \r\n不能换行的问题
2013/08/06 PHP
php递归实现无限分类的方法
2015/07/28 PHP
PHP使用strstr()函数获取指定字符串后所有字符的方法
2016/01/07 PHP
PHP简单获取多个checkbox值的方法
2016/06/13 PHP
简单谈谈PHP中的trait
2017/02/25 PHP
php中try catch捕获异常实例详解
2020/08/06 PHP
javascript高级程序设计第二版第十二章事件要点总结(常用的跨浏览器检测方法)
2012/08/22 Javascript
JavaScript中变量声明有var和没var的区别示例介绍
2014/09/15 Javascript
基于NodeJS的前后端分离的思考与实践(四)安全问题解决方案
2014/09/26 NodeJs
JavaScript对象学习小结
2015/09/02 Javascript
javascript中对Date类型的常用操作小结
2016/05/19 Javascript
JavaScript基础教程——入门必看篇
2016/05/20 Javascript
基于cssSlidy.js插件实现响应式手机图片轮播效果
2016/08/30 Javascript
javaScript中定义类或对象的五种方式总结
2016/12/04 Javascript
BootStrap框架中的data-[ ]自定义属性理解(推荐)
2017/02/14 Javascript
jQuery选择器特殊字符与属性空格问题
2017/08/14 jQuery
angular4实现tab栏切换的方法示例
2017/10/21 Javascript
vue组件的写法汇总
2018/04/12 Javascript
详解redis在nodejs中的应用
2018/05/02 NodeJs
浅谈关于iview表单验证的问题
2018/09/29 Javascript
JavaScript遍历查找数组中最大值与最小值的方法示例
2019/05/24 Javascript
vue props 一次传多个值实例
2020/07/22 Javascript
Python实现读取文件最后n行的方法
2017/02/23 Python
Python 转义字符详细介绍
2017/03/21 Python
python2.x实现人民币转大写人民币
2018/06/20 Python
python学生信息管理系统(初级版)
2018/10/17 Python
python3.7将代码打包成exe程序并添加图标的方法
2019/10/11 Python
使用 Python 合并多个格式一致的 Excel 文件(推荐)
2019/12/09 Python
python实现飞机大战项目
2020/03/11 Python
python利用appium实现手机APP自动化的示例
2021/01/26 Python
使用useBean标志初始化BEAN时如何接受初始化参数
2012/02/11 面试题
JSP&Servlet技术面试题
2015/05/21 面试题
秸秆管理实施方案
2014/03/15 职场文书
工作评语大全
2014/04/26 职场文书
企业文化标语口号
2014/06/09 职场文书
MySQL如何解决幻读问题
2021/08/07 MySQL