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 相关文章推荐
Django中URL视图函数的一些高级概念介绍
Jul 20 Python
Python实现购物车功能的方法分析
Nov 10 Python
python GUI实例学习
Nov 21 Python
Python使用Turtle模块绘制五星红旗代码示例
Dec 11 Python
Python DataFrame 设置输出不显示index(索引)值的方法
Jun 07 Python
pandas值替换方法
Jul 10 Python
Pandas DataFrame 取一行数据会得到Series的方法
Nov 10 Python
Pytorch GPU显存充足却显示out of memory的解决方式
Jan 13 Python
TensorFlow梯度求解tf.gradients实例
Feb 04 Python
Python unittest单元测试框架实现参数化
Apr 29 Python
Keras设置以及获取权重的实现
Jun 19 Python
ubuntu安装jupyter并设置远程访问的实现
Mar 31 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
Apache下禁止php文件被直接访问的解决方案
2013/04/25 PHP
phpcms中的评论样式修改方法
2016/10/21 PHP
PHP7新特性之抽象语法树(AST)带来的变化详解
2018/07/17 PHP
PHP命名空间与自动加载机制的基础介绍
2019/08/25 PHP
IE 下的只读 innerHTML
2009/08/21 Javascript
更优雅的事件触发兼容
2011/10/24 Javascript
三种动态加载js的jquery实例代码另附去除js方法
2014/04/30 Javascript
JS简单实现禁止访问某个页面的方法
2016/09/13 Javascript
JavaScript 闭包详细介绍
2016/09/28 Javascript
详解element-ui日期时间选择器的日期格式化问题
2019/04/08 Javascript
最全vue的vue-amap使用高德地图插件画多边形范围的示例代码
2020/07/17 Javascript
Angular+ionic实现折叠展开效果的示例代码
2020/07/29 Javascript
使用Python设置tmpfs来加速项目的教程
2015/04/17 Python
Python使用正则表达式实现文本替换的方法
2017/04/18 Python
Python 获得命令行参数的方法(推荐)
2018/01/24 Python
Python实现Kmeans聚类算法
2020/06/10 Python
python距离测量的方法
2018/03/06 Python
django 自定义过滤器的实现
2019/02/26 Python
python 缺失值处理的方法(Imputation)
2019/07/02 Python
python plotly绘制直方图实例详解
2019/07/22 Python
详解python路径拼接os.path.join()函数的用法
2019/10/09 Python
tensorflow实现训练变量checkpoint的保存与读取
2020/02/10 Python
Django:使用filter的pk进行多值查询操作
2020/07/15 Python
优瑞自动咖啡机官网:Jura
2018/09/29 全球购物
Moss Bros官网:英国排名第一的西装店
2020/02/26 全球购物
党校自我鉴定范文
2013/10/02 职场文书
消防器材管理制度
2014/01/28 职场文书
医科大学毕业生自荐信
2014/02/03 职场文书
合作意向书模板
2014/03/31 职场文书
社会工作专业求职信
2014/07/15 职场文书
教师师德考核自我评价
2014/09/13 职场文书
兵马俑的导游词
2015/02/02 职场文书
2015年五四青年节活动总结
2015/02/10 职场文书
2016庆祝教师节新闻稿
2015/11/25 职场文书
2019年教师节活动策划方案
2019/09/09 职场文书
python自动化操作之动态验证码、滑动验证码的降噪和识别
2021/08/30 Python