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中的左斜杠、右斜杠(正斜杠和反斜杠)
Aug 30 Python
python 中split 和 strip的实例详解
Jul 12 Python
异步任务队列Celery在Django中的使用方法
Jun 07 Python
Python 字符串换行的多种方式
Sep 06 Python
在ubuntu16.04中将python3设置为默认的命令写法
Oct 31 Python
python命令行参数用法实例分析
Jun 25 Python
详解numpy矩阵的创建与数据类型
Oct 18 Python
浅谈python中统计计数的几种方法和Counter详解
Nov 07 Python
浅析python中while循环和for循环
Nov 19 Python
Python爬虫防封ip的一些技巧
Aug 06 Python
解决PyCharm无法使用lxml库的问题(图解)
Dec 22 Python
python微信智能AI机器人实现多种支付方式
Apr 12 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
CodeIgniter php mvc框架 中国网站
2008/05/26 PHP
PHP中CURL的CURLOPT_POSTFIELDS参数使用细节
2014/03/17 PHP
PHP自定义错误处理的方法分析
2018/12/19 PHP
PJBlog插件 防刷新的在线播放器
2006/10/25 Javascript
尝试在让script的type属性等于text/html
2013/01/15 Javascript
解析JavaScript中instanceof对于不同的构造器或许都返回true
2013/12/03 Javascript
深入分析JSONP跨域的原理
2014/12/10 Javascript
node.js中的buffer.fill方法使用说明
2014/12/14 Javascript
AngularJS学习笔记之基本指令(init、repeat)
2015/06/16 Javascript
Node.js本地文件操作之文件拷贝与目录遍历的方法
2016/02/16 Javascript
jQuery插件实现图片轮播特效
2016/06/16 Javascript
Angular的$http与$location
2016/12/26 Javascript
浅谈angularjs $http提交数据探索
2017/01/20 Javascript
select下拉框插件jquery.editable-select详解
2017/01/22 Javascript
JS实现加载和读取XML文件的方法详解
2017/04/24 Javascript
Three.js利用dat.GUI如何简化试验流程详解
2017/09/26 Javascript
NodeJs crypto加密制作token的实现代码
2019/11/15 NodeJs
JavaScript判断数据类型有几种方法及区别介绍
2020/09/02 Javascript
[01:32:10]NAVI vs VG Supermajor 败者组 BO3 第一场 6.5
2018/06/06 DOTA
如何解决django配置settings时遇到Could not import settings 'conf.local'
2014/11/18 Python
Python Sql数据库增删改查操作简单封装
2016/04/18 Python
Flask框架中密码的加盐哈希加密和验证功能的用法详解
2016/06/07 Python
Python利用QQ邮箱发送邮件的实现方法(分享)
2017/06/09 Python
python3利用smtplib通过qq邮箱发送邮件方法示例
2017/12/03 Python
Python使用三种方法实现PCA算法
2017/12/12 Python
Python的多维空数组赋值方法
2018/04/13 Python
Numpy数组转置的两种实现方法
2018/04/17 Python
opencv python 2D直方图的示例代码
2018/07/20 Python
使用keras根据层名称来初始化网络
2020/05/21 Python
PyCharm2020最新激活码+激活码补丁(亲测最新版PyCharm2020.2激活成功)
2020/11/25 Python
CSS3 圆角效果
2009/07/15 HTML / CSS
澳大利亚领先的女性运动服品牌:Lorna Jane
2020/06/19 全球购物
int *p=NULL和*p= NULL有什么区别
2014/10/23 面试题
公司离职证明样本
2014/09/13 职场文书
泰坦尼克号观后感
2015/06/04 职场文书
深入理解Pytorch微调torchvision模型
2021/11/11 Python