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 获取进程pid号的方法
Mar 10 Python
Python smallseg分词用法实例分析
May 28 Python
python实现的用于搜索文件并进行内容替换的类实例
Jun 28 Python
在Django中创建URLconf相关的通用视图的方法
Jul 20 Python
Python实现对象转换为xml的方法示例
Jun 08 Python
Python实现在tkinter中使用matplotlib绘制图形的方法示例
Jan 18 Python
关于python写入文件自动换行的问题
Jun 23 Python
树莓派+摄像头实现对移动物体的检测
Jun 22 Python
Python下划线5种含义代码实例解析
Jul 10 Python
python中的django是做什么的
Jul 31 Python
python 元组和列表的区别
Dec 30 Python
Python实现的扫码工具居然这么好用!
Jun 07 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
ADODB的数据库封包程序库
2006/12/31 PHP
PHP 截取字符串函数整理(支持gb2312和utf-8)
2010/02/16 PHP
PHP防止注入攻击实例分析
2014/11/03 PHP
PHP命名空间和自动加载类
2016/04/03 PHP
客户端js性能优化小技巧整理
2013/11/05 Javascript
jqeury-easyui-layout问题解决方法
2014/03/24 Javascript
js 去除字符串第一位逗号的方法
2014/06/07 Javascript
JS实现复制内容到剪贴板功能兼容所有浏览器(推荐)
2016/06/17 Javascript
微信小程序 picker 组件详解及简单实例
2017/01/10 Javascript
xmlplus组件设计系列之路由(ViewStack)(7)
2017/05/02 Javascript
jQuery+SpringMVC中的复选框选择与传值实例
2018/01/08 jQuery
对layui中表单元素的使用详解
2018/08/15 Javascript
对angular 实时更新模板视图的方法$apply详解
2018/10/09 Javascript
如何构建 vue-ssr 项目的方法步骤
2020/08/04 Javascript
原生js实现滑块区间组件
2021/01/20 Javascript
Python 基础教程之str和repr的详解
2017/08/20 Python
python初学之用户登录的实现过程(实例讲解)
2017/12/23 Python
Python Unittest自动化单元测试框架详解
2018/04/04 Python
python django框架中使用FastDFS分布式文件系统的安装方法
2019/06/10 Python
Django之PopUp的具体实现方法
2019/08/31 Python
python中安装django模块的方法
2020/03/12 Python
python统计mysql数据量变化并调用接口告警的示例代码
2020/09/21 Python
Python如何实现感知器的逻辑电路
2020/12/25 Python
如何在vscode中安装python库的方法步骤
2021/01/06 Python
美国乡村商店:Plow & Hearth
2016/09/12 全球购物
健康监测猫砂:Pretty Litter
2017/05/25 全球购物
奥地利票务门户网站:oeticket.com
2019/12/31 全球购物
调解协议书
2014/04/16 职场文书
媒体宣传策划方案
2014/05/25 职场文书
秋季运动会广播稿(30篇)
2014/09/13 职场文书
考试作弊检讨书怎么写?
2014/12/21 职场文书
2015年秘书个人工作总结
2015/04/25 职场文书
2015年九一八事变纪念活动实施方案
2015/05/06 职场文书
六一儿童节新闻稿
2015/07/17 职场文书
python实现简单倒计时功能
2021/04/21 Python
CSS中calc(100%-100px)不加空格不生效
2023/05/07 HTML / CSS