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 抓取动态网页内容方案详解
Dec 25 Python
整理Python最基本的操作字典的方法
Apr 24 Python
Python制作爬虫采集小说
Oct 25 Python
使用Python的Scrapy框架十分钟爬取美女图
Dec 26 Python
python中实现迭代器(iterator)的方法示例
Jan 19 Python
python 寻找优化使成本函数最小的最优解的方法
Dec 28 Python
关于Python的一些学习总结
May 25 Python
python实现n个数中选出m个数的方法
Nov 13 Python
python匹配两个短语之间的字符实例
Dec 25 Python
Python3 requests文件下载 期间显示文件信息和下载进度代码实例
Aug 16 Python
详解python安装matplotlib库三种失败情况
Jul 28 Python
Python+Xlwings 删除Excel的行和列
Dec 19 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三层结构(上) 简单三层结构
2010/07/04 PHP
php处理restful请求的路由类分享
2014/02/27 PHP
PHP实现递归复制整个文件夹的类实例
2015/08/03 PHP
php生成图片验证码-附五种验证码
2015/08/19 PHP
thinkPHP订单数字提醒功能的实现方法
2016/12/01 PHP
thinkphp3.2实现在线留言提交验证码功能
2017/07/19 PHP
些很实用且必用的小脚本代码
2006/06/26 Javascript
Javascript 键盘keyCode键码值表
2009/12/24 Javascript
js 遍历对象的属性的代码
2011/12/29 Javascript
使用javascript实现页面定时跳转总结篇
2013/09/21 Javascript
JavaScript将XML转成JSON的方法
2015/03/12 Javascript
HTML5+setCutomValidity()函数验证表单实例分享
2015/04/24 Javascript
jQuery中closest和parents的区别分析
2015/05/07 Javascript
理解javascript闭包
2015/12/15 Javascript
手机Web APP如何实现分享多平台功能
2016/08/19 Javascript
js Canvas实现的日历时钟案例分享
2016/12/25 Javascript
Vue项目中quill-editor带样式编辑器的使用方法
2017/08/08 Javascript
浅谈Node.js之异步流控制
2017/10/25 Javascript
解决Vue2.x父组件与子组件之间的双向绑定问题
2018/03/06 Javascript
详解开发react应用最好用的脚手架 create-react-app
2018/04/24 Javascript
dts文件中删除一个node或属性的操作方法
2018/08/05 Javascript
vue+axios实现文件下载及vue中使用axios的实例
2018/09/21 Javascript
python实现ftp客户端示例分享
2014/02/17 Python
Python六大开源框架对比
2015/10/19 Python
django admin 后台实现三级联动的示例代码
2018/06/22 Python
python3 爬取图片的实例代码
2018/11/06 Python
Python 获取主机ip与hostname的方法
2018/12/17 Python
利用Python进行图像的加法,图像混合(附代码)
2019/07/14 Python
Belvilla德国:在线预订度假屋
2018/04/10 全球购物
2014年会演讲稿范文
2014/01/06 职场文书
小学生五年级大队长竞选发言稿
2014/09/12 职场文书
2014年生产部工作总结
2014/12/17 职场文书
小学生心理健康活动总结
2015/05/08 职场文书
2015年测量员工作总结
2015/05/23 职场文书
《仙剑客栈2》第一弹正式宣传片公开 年内发售
2022/04/07 其他游戏
MySQL 原理与优化之原数据锁的应用
2022/08/14 MySQL