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实现从web抓取文档的方法
Sep 26 Python
Python中处理unchecked未捕获异常实例
Jan 17 Python
Python 由字符串函数名得到对应的函数(实例讲解)
Aug 10 Python
Python 数据处理库 pandas 入门教程基本操作
Apr 19 Python
python查找重复图片并删除(图片去重)
Jul 16 Python
pygame实现俄罗斯方块游戏(基础篇1)
Oct 29 Python
Python爬取新型冠状病毒“谣言”新闻进行数据分析
Feb 16 Python
Python3的socket使用方法详解
Feb 18 Python
浅析python表达式4+0.5值的数据类型
Feb 26 Python
Window系统下Python如何安装OpenCV库
Mar 05 Python
scrapy在python爬虫中搭建出错的解决方法
Nov 22 Python
Python自然语言处理之切分算法详解
Apr 25 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
一个程序下载的管理程序(四)
2006/10/09 PHP
yii2使用ajax返回json的实现方法
2016/05/14 PHP
php 数组字符串搜索array_search技巧
2016/07/05 PHP
关于ThinkPHP中的异常处理详解
2018/05/11 PHP
js如何实现设计模式中的模板方法
2013/07/23 Javascript
js将字符串转成正则表达式的实现方法
2013/11/13 Javascript
jquery幻灯片插件bxslider样式改进实例
2014/10/15 Javascript
jQuery中:first-child选择器用法实例
2014/12/31 Javascript
javascript框架设计之浏览器的嗅探和特征侦测
2015/06/23 Javascript
jQuery Form 表单提交插件之formSerialize,fieldSerialize,fieldValue,resetForm,clearForm,clearFields的应用
2016/01/23 Javascript
js判断主流浏览器类型和版本号的简单实现代码
2016/05/26 Javascript
Javascript动画效果(2)
2016/10/11 Javascript
jquery对所有input type=text的控件赋值实现方法
2016/12/02 Javascript
JS实现的五级联动菜单效果完整实例
2017/02/23 Javascript
轻松玩转BootstrapTable(后端使用SpringMVC+Hibernate)
2017/09/06 Javascript
浅谈React Native 中组件的生命周期
2017/09/08 Javascript
nuxt.js 缓存实践
2018/06/25 Javascript
js尾调用优化的实现
2019/05/23 Javascript
使用Vue 实现滑动验证码功能
2019/06/27 Javascript
原生JS 实现的input输入时表格过滤操作示例
2019/08/03 Javascript
layer iframe 设置关闭按钮的方法
2019/09/12 Javascript
微信小程序实现签到弹窗动画
2020/09/21 Javascript
[02:43]2018DOTA2亚洲邀请赛主赛事首日TOP5
2018/04/04 DOTA
[02:22]完美世界DOTA2联赛PWL S3 集锦第一期
2020/12/15 DOTA
Python中的zip函数使用示例
2015/01/29 Python
详解Python中的Descriptor描述符类
2016/06/14 Python
python3爬虫学习之数据存储txt的案例详解
2019/04/24 Python
5行Python代码实现图像分割的步骤详解
2020/05/25 Python
python正则表达式re.match()匹配多个字符方法的实现
2021/01/27 Python
都柏林通行卡/城市通票:The Dublin Pass
2020/02/16 全球购物
优秀班主任推荐材料
2014/12/17 职场文书
年度考核登记表个人总结
2015/03/06 职场文书
MongoDB支持的数据类型
2022/04/11 MongoDB
分析SQL窗口函数之排名窗口函数
2022/04/21 Oracle
windows server 2012安装FTP并配置被动模式指定开放端口
2022/06/10 Servers
教你使用RustDesk 搭建一个自己的远程桌面中继服务器
2022/08/14 Servers