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网络编程之UDP通信实例(含服务器端、客户端、UDP广播例子)
Apr 25 Python
介绍Python的Django框架中的QuerySets
Apr 20 Python
深入理解python对json的操作总结
Jan 05 Python
Python使用QRCode模块生成二维码实例详解
Jun 14 Python
matplotlib简介,安装和简单实例代码
Dec 26 Python
从DataFrame中提取出Series或DataFrame对象的方法
Nov 10 Python
Python设计模式之代理模式实例详解
Jan 19 Python
Python处理时间日期坐标轴过程详解
Jun 25 Python
Python一行代码解决矩阵旋转的问题
Nov 30 Python
Python脚本导出为exe程序的方法
Mar 25 Python
Python 可视化神器Plotly详解
Dec 26 Python
python开发飞机大战游戏
Jul 15 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 数组的一个悲剧?
2011/05/11 PHP
php用ini_get获取php.ini里变量值的方法
2015/03/04 PHP
使用URL传输SESSION信息
2015/07/14 PHP
Linux系统下使用XHProf和XHGui分析PHP运行性能
2015/12/08 PHP
php使用str_shuffle()函数生成随机字符串的方法分析
2017/02/17 PHP
Web版彷 Visual Studio 2003 颜色选择器
2007/01/09 Javascript
JS的encodeURI和java的URLDecoder.decode使用介绍
2014/05/08 Javascript
jQuery表格行上移下移和置顶的实现方法
2015/10/08 Javascript
JQuery用户名校验的具体实现
2016/03/18 Javascript
全面介绍javascript实用技巧及单竖杠
2016/07/18 Javascript
js改变透明度实现轮播图的算法
2020/08/24 Javascript
Javascript实现跨域后台设置拦截的方法详解
2017/08/04 Javascript
JS实现的计数排序与基数排序算法示例
2017/12/04 Javascript
nodejs 日志模块winston的使用方法
2018/05/02 NodeJs
react在安卓中输入框被手机键盘遮挡问题的解决方法
2018/09/03 Javascript
jQuery时间戳和日期相互转换操作示例
2018/12/07 jQuery
vue中监听路由参数的变化及方法
2019/12/06 Javascript
node.js事件轮询机制原理知识点
2019/12/22 Javascript
[00:36]我的中国心——Serenity vs Fnatic
2018/08/21 DOTA
Python中列表和元组的相关语句和方法讲解
2015/08/20 Python
python 信息同时输出到控制台与文件的实例讲解
2018/05/11 Python
Python实现读写INI配置文件的方法示例
2018/06/09 Python
Python3实现腾讯云OCR识别
2018/11/27 Python
使用Python实现分别输出每个数组
2019/12/06 Python
Python decorator拦截器代码实例解析
2020/04/04 Python
Python模拟键盘输入自动登录TGP
2020/11/27 Python
如何利用python 读取配置文件
2021/01/06 Python
CSS3之transition实现下划线的示例代码
2018/05/30 HTML / CSS
Intimissimi德国网上商店:意大利知名内衣品牌
2018/04/03 全球购物
家长写给老师的建议书
2014/03/13 职场文书
安全生产月演讲稿
2014/05/09 职场文书
暑假学习心得体会
2014/09/02 职场文书
世界红十字日活动总结
2015/02/10 职场文书
《落花生》教学反思
2016/02/16 职场文书
Python控制台输出俄罗斯方块移动和旋转功能
2021/04/18 Python
缓存替换策略及应用(以Redis、InnoDB为例)
2021/07/25 Redis