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中使用base64模块来处理base64编码的方法
Jul 01 Python
Python入门必须知道的11个知识点
Mar 21 Python
python matlibplot绘制3D图形
Jul 02 Python
Python实现App自动签到领取积分功能
Sep 29 Python
python 通过类中一个方法获取另一个方法变量的实例
Jan 22 Python
java判断三位数的实例讲解
Jun 10 Python
python获取磁盘号下盘符步骤详解
Jun 19 Python
Django框架中序列化和反序列化的例子
Aug 06 Python
Python定时发送天气预报邮件代码实例
Sep 09 Python
Numpy 理解ndarray对象的示例代码
Apr 03 Python
pandas分批读取大数据集教程
Jun 06 Python
Python用户自定义异常的实现
Dec 25 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 eval函数用法 PHP中eval()函数小技巧
2012/10/31 PHP
php empty()与isset()区别的详细介绍
2013/06/17 PHP
PHP数字字符串左侧补0、字符串填充和自动补齐的几种方法
2014/05/10 PHP
PHP实现获取文件后缀名的几种常用方法
2015/08/08 PHP
thinkphp整合微信支付代码分享
2016/11/24 PHP
jQuery 1.0.2
2006/10/11 Javascript
Jquery选择器 $实现原理
2009/12/02 Javascript
简介JavaScript中substring()方法的使用
2015/06/06 Javascript
jquery实现跳到底部,回到顶部效果的简单实例(类似锚)
2016/07/10 Javascript
IE8兼容Jquery.validate.js的问题
2016/12/01 Javascript
Jquery根据浏览器窗口改变调整大小的方法
2017/02/07 Javascript
es6在react中的应用代码解析
2017/11/08 Javascript
JavaScript中关于class的调用方法
2017/11/28 Javascript
详解微信小程序开发聊天室—实时聊天,支持图片预览
2019/05/20 Javascript
[01:24:09]Ti4 冒泡赛第二轮DK vs C9 1
2014/07/14 DOTA
[01:35:13]DOTA2-DPC中国联赛 正赛 DLG vs PHOENIX BO3 第一场 1月18日
2021/03/11 DOTA
Python中的并发编程实例
2014/07/07 Python
对python numpy.array插入一行或一列的方法详解
2019/01/29 Python
python 使用plt画图,去除图片四周的白边方法
2019/07/09 Python
python ctypes库2_指定参数类型和返回类型详解
2019/11/19 Python
Python + selenium + crontab实现每日定时自动打卡功能
2020/03/31 Python
PyCharm2020最新激活码+激活码补丁(亲测最新版PyCharm2020.2激活成功)
2020/11/25 Python
Python实现Kerberos用户的增删改查操作
2020/12/14 Python
浅谈Html5移动端ios/Android兼容性总结
2018/06/01 HTML / CSS
奥兰多迪士尼门票折扣:Undercover Tourist
2018/07/09 全球购物
科室工作个人总结的自我评价
2013/10/29 职场文书
2014年五一促销活动方案
2014/03/09 职场文书
中韩经贸翻译专业大学生职业生涯规划范文
2014/09/18 职场文书
2014年党务工作总结
2014/11/25 职场文书
初中英语教师个人工作总结
2015/02/09 职场文书
MySQL表的增删改查(基础)
2021/04/05 MySQL
Python-OpenCV教程之图像的位运算详解
2021/06/21 Python
Unicode中的CJK(中日韩统一表意文字)字符小结
2021/12/06 HTML / CSS
德劲DE1102数字调谐收音机机评
2022/04/07 无线电
Golang 遍历二叉树
2022/04/19 Golang
Python 文字识别
2022/05/11 Python