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的Django框架与认证系统整合的方法
Jul 24 Python
编写Python小程序来统计测试脚本的关键字
Mar 12 Python
Python 使用os.remove删除文件夹时报错的解决方法
Jan 13 Python
tensorflow实现softma识别MNIST
Mar 12 Python
PyCharm设置SSH远程调试的方法
Jul 17 Python
python使用Matplotlib绘制分段函数
Sep 25 Python
python 处理微信对账单数据的实例代码
Jul 19 Python
python通过实例讲解反射机制
Oct 17 Python
Python面向对象程序设计之继承、多态原理与用法详解
Mar 23 Python
Python如何使用正则表达式爬取京东商品信息
Jun 01 Python
python写文件时覆盖原来的实例方法
Jul 22 Python
python 中关于pycharm选择运行环境的问题
Oct 31 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
ajax 的post方法实例(带循环)
2011/07/04 PHP
PHP检测用户语言的方法
2015/06/15 PHP
php中实现进程锁与多进程的方法
2016/09/18 PHP
ThinkPHP整合datatables实现服务端分页的示例代码
2018/02/10 PHP
基于prototype扩展的JavaScript常用函数库
2010/11/30 Javascript
javascript textarea光标定位方法(兼容IE和FF)
2011/03/12 Javascript
js模仿jquery的写法示例代码
2013/06/16 Javascript
javascript封装简单实现方法
2015/08/11 Javascript
javascript自动切换焦点控制效果完整实例
2016/02/02 Javascript
jQuery实现根据滚动条位置加载相应内容功能
2016/07/18 Javascript
jQuery实现点击表格单元格就可以编辑内容的方法【测试可用】
2016/08/01 Javascript
Bootstrap学习笔记之环境配置(1)
2016/12/07 Javascript
jQuery焦点图左右转换效果
2016/12/12 Javascript
详解angular用$sce服务来过滤HTML标签
2017/04/11 Javascript
微信小程序使用video组件播放视频功能示例【附源码下载】
2017/12/08 Javascript
vue项目中使用AES实现密码加密解密(ECB和CBC两种模式)
2019/08/12 Javascript
vue 查看dist文件里的结构(多种方式)
2020/01/17 Javascript
详解python中的json的基本使用方法
2016/12/21 Python
网红编程语言Python将纳入高考你怎么看?
2018/06/07 Python
python和shell监控linux服务器的详细代码
2018/06/22 Python
Python3按一定数据位数格式处理bin文件的方法
2019/01/24 Python
对python判断是否回文数的实例详解
2019/02/08 Python
python 遍历pd.Series的index和value
2019/11/26 Python
tensorflow 实现打印pb模型的所有节点
2020/01/23 Python
Python进程间通信multiprocess代码实例
2020/03/18 Python
如何将anaconda安装配置的mmdetection环境离线拷贝到另一台电脑
2020/10/15 Python
灵活运用CSS3特性绘制简易版围棋效果
2016/09/28 HTML / CSS
服务员自我评价
2014/01/25 职场文书
大学校运会广播稿
2014/02/03 职场文书
志愿者服务感言
2014/02/27 职场文书
汇源肾宝广告词
2014/03/20 职场文书
校企合作协议书
2014/04/16 职场文书
公司辞职信模板
2015/05/13 职场文书
毕业设计答辩开场白
2015/05/29 职场文书
小鞋子观后感
2015/06/05 职场文书
vue项目两种方式实现竖向表格的思路分析
2021/04/28 Vue.js