python输出结果刷新及进度条的实现操作


Posted in Python onJuly 13, 2020

print函数

python输出主要使用print函数,print函数介绍:

print(*objects, sep=' ', end='\n', file=sys.stdout, flush=False)

*objects表示要打印的值,表示多个无名参数或需要打印的值;

sep=' ',对应上面要打印的值中间间隔,默认一个空格;

end='\n',传入值打印完后的结束符号,默认为换行符,可以自行设置;

file=sys.stdout,设置打印输出参数,默认打印到终端,也可设置打印保存到文件;

flush=False,是否刷新打印结果。

一行输出结果并刷新

在一行中显示输出结果,每次刷新,其中'\r'表示回到当前的开头,end=''表示结束符为空,这样就可以每次更新结果

import time
for i in range(15):
  time.sleep(0.5) # 这里为了查看输出变化,实际使用不需要sleep
  print('\r', i, end='')
  # print('\r', 15-i, end='') # 从两位变一位会有问题

上面代码有个问题,当输出i从大到小,有位数变化时,结果不正确,可用format格式化输出,可解决问题:

import time
for i in range(15):
  time.sleep(0.5)
  print('\r', "{:d}".format(15-i), end='')

模型训练中loss和acc的刷新输出

我们在训练机器学习和深度学习模型中,总会隔一段时间输出损失函数和准确率,每次都直接print输出,终端会输出很多信息,这里用单行输出并刷新的方法来输出这些信息,我们设置epochs和batch的数量,每次batch输出刷新,一个epoch完后同时输出train和test的结果。

import time

# 设置epochs和batch的数量
epochs = 5
n_batch = 15
# 这里是测试自己设置的loss和acc
train_loss = 1.2345
train_acc = 0.345678
test_loss = 1.1234
test_acc = 0.235467

for i in range(epochs):
  for j in range(n_batch):
    time.sleep(0.5)
    train_loss -= 0.001
    train_acc += 0.0001

    print("\rEpoch: {:d} batch: {:d} loss: {:.4f} acc: {:.4f} | {:.2%}"
       .format(i+1, j+1, train_loss, train_acc, (j+1)*1.0/n_batch), end='')
       
  test_loss -= 0.001
  test_acc += 0.0001
  
  print("\rEpoch: {:d}/{:d} train_loss: {:.4f} test_loss: {:.4f} train_acc: {:.4f} test_acc: {:.4f}"
   .format(i+1, 5, train_loss, test_loss, train_acc, test_acc), end='\n')

这里注意,print里"Epoch"前面有一个"\r",这个必须要有,同时里面循环end='',外面循环end='\n',最终打印结果如下:

python输出结果刷新及进度条的实现操作

tqdm显示进度条

首先安装tqdm:pip install tqdm

简单使用,读取整数,直接在tqdm中传入一个list, 如果直接给定的是一个整数,可以直接用trange

import time
from tqdm import tqdm, trange

for i in tqdm(range(100)):
  time.sleep(0.05)
  # do something

# for i in trange(100):
#   time.sleep(0.05)
#   # do something

显示结果如下,显示有百分比,以及当前处理到多少个

python输出结果刷新及进度条的实现操作

tdqm输入的list可以是字符串,也可以对输出进度条加一些描述

import time
from tqdm import tqdm
pbar = tqdm(["a", "b", "c", "d", "e"])
for char in pbar:
  time.sleep(0.8)
  pbar.set_description("Processing %s" % char)
  # pbar.set_description("Processing {0}".format(char))

python输出结果刷新及进度条的实现操作

以上这篇python输出结果刷新及进度条的实现操作就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python计算三维矢量幅度的方法
Jun 15 Python
python 读写txt文件 json文件的实现方法
Oct 22 Python
Python延时操作实现方法示例
Aug 14 Python
对Python协程之异步同步的区别详解
Feb 19 Python
python爬虫项目设置一个中断重连的程序的实现
Jul 26 Python
Python图像处理之图片文字识别功能(OCR)
Jul 30 Python
python实现通过队列完成进程间的多任务功能示例
Oct 28 Python
pytorch动态网络以及权重共享实例
Jan 06 Python
python_mask_array的用法
Feb 18 Python
在python3中实现更新界面
Feb 21 Python
Python super()方法原理详解
Mar 31 Python
Python建造者模式案例运行原理解析
Jun 29 Python
python实现图像外边界跟踪操作
Jul 13 #Python
Python实现打包成库供别的模块调用
Jul 13 #Python
Python numpy矩阵处理运算工具用法汇总
Jul 13 #Python
解决pyinstaller 打包exe文件太大,用pipenv 缩小exe的问题
Jul 13 #Python
Python使用pyexecjs代码案例解析
Jul 13 #Python
如何在VSCode下使用Jupyter的教程详解
Jul 13 #Python
解决python 虚拟环境删除包无法加载的问题
Jul 13 #Python
You might like
超小PHP小马小结(方便查找后门的朋友)
2012/05/05 PHP
php的慢速日志引起的Mysql错误问题分析
2014/05/13 PHP
php反序列化长度变化尾部字符串逃逸(0CTF-2016-piapiapia)
2020/02/15 PHP
JavaScript 闭包深入理解(closure)
2009/05/27 Javascript
google地图的路线实现代码
2009/08/20 Javascript
Jquery获取复选框被选中值的简单方法
2013/07/04 Javascript
JavaScript中的document.referrer在各种浏览器测试结果
2014/07/18 Javascript
JQuery CheckBox(复选框)操作方法汇总
2015/04/15 Javascript
js实现当前输入框高亮显示的方法
2015/08/19 Javascript
jQuery实现本地预览上传图片功能
2016/01/08 Javascript
Bootstrap Modal对话框如何在关闭时触发事件
2016/12/02 Javascript
JavaScript实现购物车基本功能
2017/07/21 Javascript
webpack实现热更新(实施同步刷新)
2017/07/28 Javascript
详解node+express+ejs+bootstrap构建项目
2017/09/27 Javascript
webpack打包node.js后端项目的方法
2018/03/10 Javascript
vue2.0实现移动端的输入框实时检索更新列表功能
2018/05/08 Javascript
vue项目打包之后背景样式丢失的解决方案
2019/01/17 Javascript
微信小程序云开发(数据库)详解
2019/05/17 Javascript
layui禁用侧边导航栏点击事件的解决方法
2019/09/25 Javascript
javascript实现雪花飘落效果
2020/08/19 Javascript
跟老齐学Python之print详解
2014/09/28 Python
Python基于pygame实现的font游戏字体(附源码)
2015/11/11 Python
对python的文件内注释 help注释方法
2018/05/23 Python
python3实现多线程聊天室
2018/12/12 Python
100行Python代码实现每天不同时间段定时给女友发消息
2019/09/27 Python
Smallable英国家庭概念店:设计师童装及家居装饰
2017/07/05 全球购物
英国家庭珠宝商:T. H. Baker
2018/02/08 全球购物
捷克母婴用品购物网站:Feedo.cz
2020/12/28 全球购物
初中高效课堂实施方案
2014/02/26 职场文书
初中同学会活动方案
2014/08/22 职场文书
2014大四本科生自我鉴定总结
2014/10/04 职场文书
学习三严三实心得体会
2014/10/13 职场文书
婚礼长辈答谢词
2015/09/29 职场文书
自愿离婚协议书范本2016
2016/03/18 职场文书
python实现简易自习室座位预约系统
2021/06/30 Python
Python Matplotlib绘制条形图的全过程
2021/10/24 Python