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判断端口是否打开的实现代码
Feb 10 Python
Python的函数嵌套的使用方法
Jan 24 Python
在Python的Django框架中为代码添加注释的方法
Jul 16 Python
python抓取网页中链接的静态图片
Jan 29 Python
浅谈python爬虫使用Selenium模拟浏览器行为
Feb 23 Python
Django如何配置mysql数据库
May 04 Python
Python 字符串与数字输出方法
Jul 16 Python
用Python中的turtle模块画图两只小羊方法
Apr 09 Python
python爬虫项目设置一个中断重连的程序的实现
Jul 26 Python
python使用多线程编写tcp客户端程序
Sep 02 Python
使用PyOpenGL绘制三维坐标系实例
Dec 24 Python
Python爬虫headers处理及网络超时问题解决方案
Jun 19 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生成静态HTML文档的原理
2012/10/29 PHP
PHP-Fcgi下PHP的执行时间设置方法
2013/08/02 PHP
100多行PHP代码实现socks5代理服务器[2]
2016/05/05 PHP
PHP入门教程之操作符与控制结构流程详解
2016/09/09 PHP
PHP面相对象中的重载与重写
2017/02/13 PHP
jquery利用ajax调用后台方法实例
2013/08/23 Javascript
JavaScript DOM 编程艺术(第2版)读书笔记(JavaScript的最佳实践)
2013/10/01 Javascript
JavaScript中变量声明有var和没var的区别示例介绍
2014/09/15 Javascript
Javascript中实现trim()函数的两种方法
2015/02/04 Javascript
JavaScript获取网页表单提交方式的方法
2015/04/02 Javascript
javascript用函数实现对象的方法
2015/05/14 Javascript
JS清除文本框内容离开在恢复及鼠标离开文本框时触发js的方法
2016/01/12 Javascript
JS生成不重复的随机数组的简单实例
2016/07/10 Javascript
jquery过滤特殊字符',防sql注入的实现方法
2016/08/17 Javascript
webpack入门+react环境配置
2017/02/08 Javascript
ComboBox(下拉列表框)通过url加载调用远程数据的方法
2017/08/06 Javascript
JavaScript实现为事件句柄绑定监听函数的方法分析
2017/11/14 Javascript
浅谈Vue SPA 首屏加载优化实践
2017/12/15 Javascript
jQuery实现的简单获取索引功能示例
2018/06/04 jQuery
VueJS 组件参数名命名与组件属性转化问题
2018/12/03 Javascript
vue中实现高德定位功能
2019/12/03 Javascript
微信小程序批量上传图片到七牛(推荐)
2019/12/19 Javascript
原生JS实现烟花效果
2020/03/10 Javascript
探究Python多进程编程下线程之间变量的共享问题
2015/05/05 Python
python使用正则表达式的search()函数实现指定位置搜索功能
2017/11/10 Python
Python爬虫之App爬虫视频下载的实现
2020/12/08 Python
解决pytorch下出现multi-target not supported at的一种可能原因
2021/02/06 Python
美国旅游网站:Tours4Fun
2017/02/17 全球购物
美国女孩洋娃娃店:American Girl
2017/10/24 全球购物
德国童装购物网站:NICKI´S.com
2018/04/20 全球购物
英国No.1体育用品零售商:SportsDirect.com
2019/10/16 全球购物
Java如何读取CLOB字段
2013/10/10 面试题
《狼》教学反思
2014/03/02 职场文书
2016小学新学期寄语
2015/12/04 职场文书
javascript canvas实现雨滴效果
2021/06/09 Javascript
Python中的socket网络模块介绍
2022/07/23 Python