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学习之asyncore模块用法实例教程
Sep 29 Python
线程和进程的区别及Python代码实例
Feb 04 Python
Python使用Srapy框架爬虫模拟登陆并抓取知乎内容
Jul 02 Python
Flask框架通过Flask_login实现用户登录功能示例
Jul 17 Python
解决python中 f.write写入中文出错的问题
Oct 31 Python
10分钟教你用Python实现微信自动回复功能
Nov 28 Python
详解python pandas 分组统计的方法
Jul 30 Python
python Event事件、进程池与线程池、协程解析
Oct 25 Python
Pycharm配置PyQt5环境的教程
Apr 02 Python
Python基于stuck实现scoket文件传输
Apr 02 Python
python对execl 处理操作代码
Jun 22 Python
基于Python和C++实现删除链表的节点
Jul 06 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 组件化编程技巧
2009/06/06 PHP
关于PHP自动判断字符集并转码的详解
2013/06/26 PHP
解决file_get_contents无法请求https连接的方法
2013/12/17 PHP
php 获取SWF动画截图示例代码
2014/02/10 PHP
PHP管理依赖(dependency)关系工具 Composer的自动加载(autoload)
2014/08/18 PHP
php strftime函数的详细用法
2018/06/21 PHP
google地图的路线实现代码
2009/08/20 Javascript
boxy基于jquery的弹出层对话框插件扩展应用 弹出层选择器
2010/11/21 Javascript
jquery $.getJSON()跨域请求
2011/12/21 Javascript
js浏览器本地存储store.js介绍及应用
2014/05/13 Javascript
JS实现间歇滚动的运动效果实例
2016/12/22 Javascript
jQuery easyui datagird编辑行删除行功能的实现代码
2018/09/20 jQuery
JSON基本语法及与JavaScript的异同实例分析
2019/01/04 Javascript
详解关于表格合并span-method方法的补充(表格数据由后台动态返回)
2019/05/21 Javascript
JSON获取属性值方法代码实例
2020/06/30 Javascript
[57:24]LGD vs VGJ.T 2018国际邀请赛小组赛BO2 第二场 8.16
2018/08/17 DOTA
Python 字符串操作方法大全
2014/03/11 Python
Python实现115网盘自动下载的方法
2014/09/30 Python
python与sqlite3实现解密chrome cookie实例代码
2018/01/20 Python
深入flask之异步非堵塞实现代码示例
2018/07/31 Python
Linux下多个Python版本安装教程
2018/08/15 Python
django 外键model的互相读取方法
2018/12/15 Python
Python字符串hashlib加密模块使用案例
2020/03/10 Python
python实现在线翻译
2020/06/18 Python
python实现简单猜单词游戏
2020/12/24 Python
HTML5 新事件 小结
2009/07/16 HTML / CSS
struct和class的区别
2015/11/20 面试题
初一英语教学反思
2014/01/11 职场文书
一年级小学生评语
2014/04/22 职场文书
促销活动总结范文
2014/04/30 职场文书
公司承诺书范文
2014/05/19 职场文书
敬老月活动总结
2014/08/28 职场文书
改革共识倡议书
2014/08/29 职场文书
2014年教师党员自我评议
2014/09/19 职场文书
上课迟到检讨书300字
2014/10/15 职场文书
掌握一个领域知识,高效学习必备方法
2019/08/08 职场文书