众所众知:

写程序不写注释是XX
写程序不缩进是XX
写程序不写log是XX <-------------- 今天说叨说叨这个

之前一直想把,PaddleClas 里边儿那个log 搬下来,自己用用,奈何,那个 logger.py 过于庞大,我把握不住

今天撞大运了,看这个baseline,发现一个简单好用的log,赶紧搬过来,给我用!

原出处在这里:
https://github.com/PerceptionComputingLab/PARSE2022/blob/main/baseline/train.py

import loggingroot_nowexp = "test"def get_logger(filename, verbosity=1, name=None):level_dict = {0: logging.DEBUG, 1: logging.INFO, 2: logging.WARNING}formatter = logging.Formatter("[%(asctime)s][%(filename)s][line:%(lineno)d][%(levelname)s] %(message)s")logger = logging.getLogger(name)logger.setLevel(level_dict[verbosity])fh = logging.FileHandler(filename, "w")fh.setFormatter(formatter)logger.addHandler(fh)sh = logging.StreamHandler()sh.setFormatter(formatter)logger.addHandler(sh)return loggerlogger = get_logger(f'{root_nowexp}exp.log')
logger.info('start training!')
logger.warning('啊哈哈哈哈')
logger.error('你们被拒绝过吗')

info/warning/error 都有

运行一下看看:

[2022-04-14 14:31:54,112][2908748658.py][line:24][INFO] start training!
[2022-04-14 14:31:54,113][2908748658.py][line:25][INFO] 啊哈哈哈哈
[2022-04-14 14:31:54,114][2908748658.py][line:26][INFO] 你们被拒绝过吗

然后会在本地生成一个文件 testexp.log

打开一看,还是这个:

[2022-04-14 14:31:54,112][2908748658.py][line:24][INFO] start training!
[2022-04-14 14:31:54,113][2908748658.py][line:25][INFO] 啊哈哈哈哈
[2022-04-14 14:31:54,114][2908748658.py][line:26][INFO] 你们被拒绝过吗

nice!! 好用的一批好吗!


再放一个训练的例子:

logger = get_logger(f'{root_nowexp}exp.log')
logger.info('start training!')for epoch in range(opt.max_epoch):model.train()for batch_id, (dcm_image, label_image) in tqdm(enumerate(train_dataLoader),total=int(len(train_dataset) / opt.batch_size)):XXXXXXXXXXXXXXXXoptimizer.zero_grad()loss.backward()optimizer.step()Unet.eval()logger.info('Epoch:[{}/{}]\t loss={:.5f}\t train dice:{:.1f} \t evalu dice:{:.1f}'.format(epoch, opt.max_epoch,epoch_loss.avg,train_dice,evalu_dice))scheduler.step()logger.info('finish training!')

前面是 开始 训练:

logger.info('start training!')

而后是 中间的指标:

logger.info('Epoch:[{}/{}]\t loss={:.5f}\t train dice:{:.1f} \t evalu dice:{:.1f}'.format(epoch, opt.max_epoch,epoch_loss.avg,train_dice,evalu_dice))

最后是训练结束:

logger.info('finish training!')

下一篇:
https://blog.csdn.net/HaoZiHuang/article/details/127127752
来举个例子说下 log 的 level

[每日一氵] Python 写程序专用 log 分享相关推荐

  1. python写程序求1-3+5-7+...-99+101的值-16-Python3-高价函数-提升效率必备

    python中有许多内置函数,不像print那么广为人知,但它们却异常的强大,用好了可以大大提高代码效率. Python3_函数:高价函数 一.编程的3种方法: 面向过程:将一个大问题分成若干个小问题 ...

  2. Linux系统下用python写程序,用Python写个Linux系统命令

    这篇文章介绍如何写个系统命令以及我为什么要写命令 "一切皆文件"是linux的基本哲学之一,我们在linux下执行的诸如ls 之类的命令实际上都是去执行了系统上的某个文件,whic ...

  3. 自己写的一个抢票加速的Python小程序源码分享-----纯属娱乐

    最近这段时间频频看到微信群里发什么 抢票加速,智行.携程.飞猪.美团,对于我这能坐客车就不坐火车的人来说,无所谓靠谱不靠谱 突发奇想的整理了下整个抢票加速的逻辑,写了这个小程序,代码很low,拒绝批评 ...

  4. 使用python写程序时遇到的几个小问题

    1.用IDLE编辑器打开py源文件,F5运行:或者直接双击运行py文件,运行均无错误,但是在CMD中用python命令运行则报错. 个人推测及解决方案: 报错的内容为在py文件中的出现文件名的地方,猜 ...

  5. python抢票软件源代码_自己写的一个抢票加速的Python小程序源码分享-----纯属娱乐...

    最近这段时间频频看到微信群里发什么 抢票加速,智行.携程.飞猪.美团,对于我这能坐客车就不坐火车的人来说,无所谓靠谱不靠谱 突发奇想的整理了下整个抢票加速的逻辑,写了这个小程序,代码很low,拒绝批评 ...

  6. python写程序计算无穷级数_圆周率 π 展开 为 无穷级数

    圆周率  π  展开 为 无穷级数   其实 很简单,  如图 : 可以用   黄色小三角形 和 橙色小三角形,  以及 依此类推 下去 的 无数个 小三角形  来 逼近 圆面积,   把 这个 无限 ...

  7. python与vb可以互换吗_vb能配合python写程序么?

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 #自定义结构的传递的确比较麻烦,如果找到更好的方法,请务必告诉我 class ReadMail: _public_methods_=['Read_mail ...

  8. 最近发现的一些Python写程序的小技巧

    巧妙的使用enumerate 可以得到元素和序列号. In [1]: n_topics = range(1,50,2)In [2]: for idx, n_topic in enumerate(n_t ...

  9. 如何用python写程序设置当前打印机为默认打印机_从Python打印到标准打印机?

    Is there a reasonably standard and cross platform way to print text (or even PS/PDF) to the system d ...

  10. python写程序求1-3+5-7+...-99+101的值-python基本练习

    python基本练习 ### 1. 请使用python中的循环打印输出从1到100的所有奇数? ```python for i in range(1,101): #注意这里是101,不是100 if ...

最新文章

  1. 600页!分享珍藏很久的《推荐系统学习手册》(附下载链接及入门经验)
  2. SmartCode Release 4
  3. FCOS: A Simple and Strong Anchor-free Object Detector
  4. DM8168芯片级资源
  5. 计算机应用基础 a卷,计算机应用基础笔试A卷.doc
  6. jenkins集成钉消息通知
  7. idea 设置jdk_IDEA开发小技巧~jdk问题
  8. Android自定义控件学习(六)-------使视图互动
  9. python之七行代码制作GIF动画
  10. 解压rootfs.img根文件系统
  11. mysql基础之查询缓存、存储引擎
  12. C++ 前置操作符与后置操作符
  13. 桌面上 计算机 图标打不开怎么办,桌面图标打不开怎么办?WinXP电脑桌面图标打不开解决方法...
  14. paip.提升用户体验---c++ qt自定义窗体(2)---边框线的绘制
  15. excel如何快速将英文表格翻译为中文表格
  16. 微信小程序实现垂直tab标签页的切换及动态的选中下划线移动-纵向
  17. Laravel文档 翻译合集
  18. 个人开发者用户福音,轻松申请微信商户、支付宝支付妙招
  19. 软件测试论文参考文献
  20. Redis核心技术与实战-学习笔记(二十九):Redis并发控制

热门文章

  1. python音乐库_目前在python3下有哪些音乐处理库?
  2. 从金山到小米,看雷军如何一步步成为“飞猪”
  3. 没基础,也可一文看懂 python 中的 csv 模块
  4. 比较器应用一:滞回比较器
  5. 虫虫 HTML5::初学者使用 Application Cache 指南
  6. 《HelloGitHub》第 67 期
  7. matlab persistent,新见到的MATLAB变量类型 persistent
  8. STM32与S3C2440的区别
  9. android 卡片行星,卡片详情
  10. ac算法 java_Aho-Corasick算法的Java实现与分析