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之编写类之四再论继承
Oct 11 Python
python实现自动发送邮件发送多人、群发、多附件的示例
Jan 23 Python
解决Python下json.loads()中文字符出错的问题
Dec 19 Python
利用Python+阿里云实现DDNS动态域名解析的方法
Apr 01 Python
Django ImageFiled上传照片并显示的方法
Jul 28 Python
Python基于jieba, wordcloud库生成中文词云
May 13 Python
python:删除离群值操作(每一行为一类数据)
Jun 08 Python
基于python实现音乐播放器代码实例
Jul 01 Python
python七种方法判断字符串是否包含子串
Aug 18 Python
PyQt5通过信号实现MVC的示例
Feb 06 Python
matlab xlabel位置的设置方式
May 21 Python
Python OpenCV实现传统图片格式与base64转换
Jun 13 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的变量总结 新手推荐
2011/04/18 PHP
Yii2使用dropdownlist实现地区三级联动功能的方法
2016/07/18 PHP
PHP让数组中有相同值的组成新的数组实例
2017/12/31 PHP
php实现登录页面的简单实例
2019/09/29 PHP
laravel实现登录时监听事件,添加登录用户的记录方法
2019/09/30 PHP
PHP设计模式之数据访问对象模式(DAO)原理与用法实例分析
2019/12/12 PHP
一个简单的js鼠标划过切换效果
2010/06/30 Javascript
node.js实现复制文本到剪切板的功能
2017/01/23 Javascript
如何给ss bash 写一个 WEB 端查看流量的页面
2017/03/23 Javascript
JS获取本地地址及天气的方法实例小结
2019/05/10 Javascript
Vue事件修饰符native、self示例详解
2019/07/09 Javascript
jQuery+ThinkPHP实现图片上传
2020/07/23 jQuery
vue自定义树状结构图的实现方法
2020/10/18 Javascript
python正则表达式判断字符串是否是全部小写示例
2013/12/25 Python
Python3使用requests发闪存的方法
2016/05/11 Python
Python实现基于多线程、多用户的FTP服务器与客户端功能完整实例
2017/08/18 Python
windows上安装python3教程以及环境变量配置详解
2019/07/18 Python
window7下的python2.7版本和python3.5版本的opencv-python安装过程
2019/10/24 Python
python编程进阶之类和对象用法实例分析
2020/02/21 Python
python图片合成的示例
2020/11/09 Python
怎样客观的做好自我评价
2013/12/28 职场文书
电脑饰品店的创业计划书
2014/01/21 职场文书
幼师小班个人总结
2015/02/12 职场文书
锅炉工岗位职责
2015/02/13 职场文书
销售开票员岗位职责
2015/04/15 职场文书
关于迟到的检讨书
2015/05/06 职场文书
2015年卫生院健康教育工作总结
2015/07/24 职场文书
新郎婚礼致辞
2015/07/27 职场文书
2016年社区“我们的节日·中秋节”活动总结
2016/04/05 职场文书
竞选稿之小学班干部
2019/10/31 职场文书
JS Object构造函数之Object.freeze
2021/04/28 Javascript
Python装饰器的练习题
2021/11/23 Python
关于CSS自定义属性与前端页面的主题切换问题
2022/03/21 HTML / CSS
《巫师》是美食游戏?CDPR10月将推出《巫师》官方食谱
2022/04/03 其他游戏
基于docker安装zabbix的详细教程
2022/06/05 Servers
vscode内网访问服务器的方法
2022/06/28 Servers