python tqdm库的使用


Posted in Python onNovember 30, 2020

Tqdm库比较常用,用于显示进度条。

简单用法:

from tqdm import tqdm

 for i in tqdm(range(2)): 
 pass

100%|???????????????????| 2/2 [00:00<00:00, 1998.72it/s]

  从上面可以看到生成一个长度为2的列表传入tqdm中,在for中迭代,此时输出了进度条,这里tqdm全部使用了默认参数,默认进度条样式就是如上所示;通常默认进度条所输出的信息并不满足我们的需求,tqdm还可以定制进度条样式;
  tdqm数据参数支持的数据类型是可迭代的对象iterable,在Python中默认的可迭代对象有:list、str、tuple、dict、file、xrange等,当然还有自定义可迭代对象;

tqdm参数

desc=None,     str类型,作为进度条说明
total=None,     预期的迭代次数   
file=None,     输出方式,默认为sys.stderr
ncols=None,    进度条长度
mininterval=0.1,   进度条最小的更新间隔,单位秒,默认:0.1
maxinterval=10.0,  进度条最大更新间隔,单位秒,默认:10
unit='it',      单位,默认it每秒迭代数
bar_format=None,  进度条格式
postfix       字典形式信息,例如:速度=5

  这些参数为相对比较常用的参数,并且全部都是可选参数;在自定义进度条当中比较重要的的一个参数为:bar_format,用于定义进度条的具体格式,所包含的具体数据信息;
  下面主要介绍这个参数的具体用法;

Specify a custom bar string formatting. May impact performance.
  [default: '{l_bar}{bar}{r_bar}'], where
  l_bar='{desc}: {percentage:3.0f}%|' and
  r_bar='| {n_fmt}/{total_fmt} [{elapsed}<{remaining}, '
   '{rate_fmt}{postfix}]'
  Possible vars: l_bar, bar, r_bar, n, n_fmt, total, total_fmt,
   percentage, elapsed, elapsed_s, ncols, nrows, desc, unit,
   rate, rate_fmt, rate_noinv, rate_noinv_fmt,
   rate_inv, rate_inv_fmt, postfix, unit_divisor,
   remaining, remaining_s.
  Note that a trailing ": " is automatically removed after {desc}
  if the latter is empty.

上面为tqdm对bar_format的参数描述;从中可看出:
进度条默认格式为: {l_bar}{bar}{r_bar}
进度条分为三部分: 中间的图形(bar),图形左边(l_bar)、图形右边(r_bar)

  • l_bar: {desc}: {percentage:3.0f}%|
  • bar: 进度条
  • r_bar: |{n_fmt}/{total_fmt}[{elapsed}<{remaining},{rate_fmt}{postfix}]

100%|?????????????????| 3/3 [00:03<00:00, 1.00s/it]

percentage:百分比
n_fmt:当前数
total_fmt:总数
elapsed:消耗的时间
remaining:剩余时间
rate_fmt:速率
postifx:后缀字典描述
desc、postfix默认为空;

自定义进度条:

1、bar_format=
'进度:{percentage:3.0f}%|{bar}|{n}/{total}[{elapsed}<{remaining},{rate_fmt}{postfix}]'
进度:100%|????????????????????|3/3[00:03<00:00, 1.00s/it]

2、bar_format='进度:{percentage:3.0f}%|{bar}|{n}/{total}[{rate_fmt}{postfix}]'
进度:100%|????????????????????|3/3[ 1.00s/it]

批量数据进度条

import numpy as np
from torch.utils.data import DataLoader
import time
from tqdm import tqdm, tqdm_notebook
from random import random

data =np.array([1,2,3,4])
data_loader = DataLoader(data, batch_size=2, num_workers=0, shuffle=False)

iterator = tqdm(data_loader,maxinterval=10,
        mininterval=2, ncols=80,
        bar_format='{l_bar}|{bar}| {n_fmt}/{total_fmt} [{rate_fmt}{postfix}|{elapsed}<{remaining}]',
        nrows=10,smoothing=0.1)
epoch =0
for d in iterator:
  time.sleep(2)
  epoch +=1
  print(d)
  iterator.set_description('epoch %d' %epoch)
  iterator.set_postfix_str('loss={:^7.3f}'.format(random()))

python tqdm库的使用

以上就是python tqdm库的使用的详细内容,更多关于python tqdm库的资料请关注三水点靠木其它相关文章!

Python 相关文章推荐
Python随机生成带特殊字符的密码
Mar 02 Python
Python的Flask框架应用程序实现使用QQ账号登录的方法
Jun 07 Python
Python编程之字符串模板(Template)用法实例分析
Jul 22 Python
Python元字符的用法实例解析
Jan 17 Python
python爬虫之urllib3的使用示例
Jul 09 Python
pycharm中成功运行图片的配置教程
Oct 28 Python
Python之循环结构
Jan 15 Python
python调用Matplotlib绘制分布点图
Oct 18 Python
python实现XML解析的方法解析
Nov 16 Python
python生成器用法实例详解
Nov 22 Python
Jupyter notebook 启动闪退问题的解决
Apr 13 Python
python 如何引入协程和原理分析
Nov 30 Python
Python+unittest+DDT实现数据驱动测试
Nov 30 #Python
Python logging自定义字段输出及打印颜色
Nov 30 #Python
详解Python中string模块除去Str还剩下什么
Nov 30 #Python
使用django自带的user做外键的方法
Nov 30 #Python
python 实现简易的记事本
Nov 30 #Python
详解pycharm自动import所需的库的操作方法
Nov 30 #Python
Django REST Framework 分页(Pagination)详解
Nov 30 #Python
You might like
探讨PHP中OO之静态关键字以及类常量的详解
2013/06/07 PHP
解析php中eclipse 用空格替换 tab键
2013/06/24 PHP
PHP实现通过get方式识别用户发送邮件的方法
2015/07/16 PHP
thinkPHP导出csv文件及用表格输出excel的方法
2015/12/30 PHP
PHP + plupload.js实现多图上传并显示进度条加删除实例代码
2017/03/06 PHP
实例介绍PHP中zip_open()函数用法
2019/02/15 PHP
浅谈PHP中的那些魔术常量
2020/12/02 PHP
createElement动态创建HTML对象脚本代码
2008/11/24 Javascript
js实现权限树的更新权限时的全选全消功能
2009/02/17 Javascript
javascript 控制 html元素 显示/隐藏实现代码
2009/09/01 Javascript
来自qq的javascript面试题
2010/07/24 Javascript
jQuery实现只允许输入数字和小数点的方法
2016/03/02 Javascript
JS设计模式之单例模式(一)
2017/09/29 Javascript
深入理解基于vue-cli的webpack打包优化实践及探索
2019/10/14 Javascript
原生js实现五子棋游戏
2020/05/28 Javascript
[01:02:26]DOTA2-DPC中国联赛 正赛 SAG vs RNG BO3 第二场 1月18日
2021/03/11 DOTA
centos 安装python3.6环境并配置虚拟环境的详细教程
2018/02/22 Python
Python 经典面试题 21 道【不可错过】
2018/09/21 Python
python2.7实现邮件发送功能
2018/12/12 Python
Python在图片中插入大量文字并且自动换行
2019/01/02 Python
Python使用Shelve保存对象方法总结
2019/01/28 Python
nginx+uwsgi+django环境搭建的方法步骤
2019/11/25 Python
Pycharm的Available Packages为空的解决方法
2020/09/18 Python
用sleep间隔进行python反爬虫的实例讲解
2020/11/30 Python
canvas之万花筒效果的简单实现(推荐)
2016/08/16 HTML / CSS
CSS3实现div从下往上滑入滑出效果示例
2020/04/28 HTML / CSS
HTML5对比HTML4的主要改变和改进总结
2016/05/27 HTML / CSS
社会工作专业求职信
2014/07/15 职场文书
新学期红领巾广播稿
2014/10/04 职场文书
面试感谢信范文
2015/01/22 职场文书
2015年国税春训心得体会
2015/03/09 职场文书
2015年社区关工委工作总结
2015/04/03 职场文书
机器人瓦力观后感
2015/06/12 职场文书
活动宣传稿范文
2015/07/23 职场文书
使用python+pygame开发消消乐游戏附完整源码
2021/06/10 Python
SQL SERVER存储过程用法详解
2022/02/24 SQL Server