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实现类继承实例
Jul 04 Python
Python简单计算文件夹大小的方法
Jul 14 Python
Python数组定义方法
Apr 13 Python
python+ffmpeg视频并发直播压力测试
Mar 06 Python
对Python 2.7 pandas 中的read_excel详解
May 04 Python
Python小工具之消耗系统指定大小内存的方法
Dec 03 Python
Appium Python自动化测试之环境搭建的步骤
Jan 23 Python
pandas基于时间序列的固定时间间隔求均值的方法
Jul 04 Python
Python获取好友地区分布及好友性别分布情况代码详解
Jul 10 Python
通过代码实例了解Python sys模块
Sep 14 Python
利用Python实现Picgo图床工具
Nov 23 Python
分享几种python 变量合并方法
Mar 20 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 常见郁闷问题答解
2006/11/25 PHP
基于PHP服务端图片生成缩略图的方法详解
2013/06/20 PHP
PHP实现的字符串匹配算法示例【sunday算法】
2017/12/19 PHP
PHP5中使用mysqli的prepare操作数据库的介绍
2019/03/18 PHP
PHP实现单文件、多个单文件、多文件上传函数的封装示例
2019/09/02 PHP
超强的IE背景图片闪烁(抖动)的解决办法
2007/09/09 Javascript
cnblogs 代码高亮显示后的代码复制问题解决实现代码
2011/12/14 Javascript
js获取input标签的输入值实现代码
2013/08/05 Javascript
浅谈JavaScript中运算符的优先级
2015/07/07 Javascript
原生JS实现简单放大镜效果
2017/02/08 Javascript
JS中正则表达式全局匹配模式 /g用法详解
2017/04/01 Javascript
es6 字符串String的扩展(实例讲解)
2017/08/03 Javascript
vue 通过下拉框组件学习vue中的父子通讯
2017/12/19 Javascript
详解TypeScript+Vue 插件 vue-class-component的使用总结
2019/02/18 Javascript
layer弹出层自适应高度,垂直水平居中的实现
2019/09/16 Javascript
uploadify插件实现多个图片上传并预览
2019/09/30 Javascript
vue.js 实现a标签href里添加参数
2019/11/12 Javascript
python通过ElementTree操作XML获取结点读取属性美化XML
2013/12/02 Python
python在Windows8下获取本机ip地址的方法
2015/03/14 Python
Python 实现随机数详解及实例代码
2017/04/15 Python
Python中enumerate函数代码解析
2017/10/31 Python
基于Python pip用国内镜像下载的方法
2018/06/12 Python
Python 打印中文字符的三种方法
2018/08/14 Python
python取数作为临时极大值(极小值)的方法
2018/10/15 Python
Django+RestFramework API接口及接口文档并返回json数据操作
2020/07/12 Python
Pycharm安装Qt Design快捷工具的详细教程
2020/11/18 Python
关于pycharm 切换 python3.9 报错 ‘HTMLParser‘ object has no attribute ‘unescape‘ 的问题
2020/11/24 Python
Html5中localStorage存储JSON数据并读取JSON数据的实现方法
2017/02/13 HTML / CSS
佳能加拿大网上商店:Canon eStore Canada
2018/04/04 全球购物
法国包包和行李箱销售网站:Bagage24.fr
2020/03/24 全球购物
学生党员思想汇报
2013/12/28 职场文书
爱国演讲稿400字
2014/05/07 职场文书
2014年实验室工作总结
2014/12/03 职场文书
导师鉴定意见
2015/06/05 职场文书
MYSQL(电话号码,身份证)数据脱敏的实现
2021/05/28 MySQL
vue生命周期钩子函数以及触发时机
2022/04/26 Vue.js