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聊天程序实例代码分享
Nov 18 Python
Python常用库推荐
Dec 04 Python
详解python3百度指数抓取实例
Dec 12 Python
python3+pyqt5+itchat微信定时发送消息的方法
Feb 20 Python
python 判断字符串中是否含有汉字或非汉字的实例
Jul 15 Python
python selenium爬取斗鱼所有直播房间信息过程详解
Aug 09 Python
Tensorflow 模型转换 .pb convert to .lite实例
Feb 12 Python
基于Python词云分析政府工作报告关键词
Jun 02 Python
Python字符串及文本模式方法详解
Sep 10 Python
Ubuntu 20.04安装Pycharm2020.2及锁定到任务栏的问题(小白级操作)
Oct 29 Python
python 模拟登陆github的示例
Dec 04 Python
安装python依赖包psycopg2来调用postgresql的操作
Jan 01 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/12/06 PHP
PHPThumb PHP 图片缩略图库
2012/03/11 PHP
PHP多维数组转一维数组的简单实现方法
2015/12/23 PHP
PHP大文件分割上传 PHP分片上传
2017/08/28 PHP
JavaScript 不只是脚本
2007/05/30 Javascript
让ie运行js时提示允许阻止内容运行的解决方法
2010/10/24 Javascript
js与jQuery 获取父窗、子窗的iframe
2013/12/20 Javascript
node.js中的fs.close方法使用说明
2014/12/17 Javascript
学习JavaScript设计模式(多态)
2015/11/25 Javascript
js仿百度切换皮肤功能(html+css)
2016/07/10 Javascript
jQuery EasyUI 右键菜单--关闭标签/选项卡的简单实例
2016/10/10 Javascript
Kendo Grid editing 自定义验证报错提示的解决方法
2016/11/18 Javascript
基于Nodejs利用socket.io实现多人聊天室
2017/02/22 NodeJs
微信小程序实战之登录页面制作(5)
2020/03/30 Javascript
jquery DataTable实现前后台动态分页
2017/06/17 jQuery
Django与Vue语法的冲突问题完美解决方法
2017/12/14 Javascript
vue.js的双向数据绑定Object.defineProperty方法的神奇之处
2019/01/18 Javascript
详解react-refetch的使用小例子
2019/02/15 Javascript
详解微信小程序调用支付接口支付
2019/04/28 Javascript
对layui数据表格动态cols(字段)动态变化详解
2019/10/25 Javascript
[02:36]DOTA2英雄基础教程 一击致命幻影刺客
2013/12/06 DOTA
[01:06:12]VP vs NIP 2019国际邀请赛小组赛 BO2 第一场 8.15
2019/08/17 DOTA
python处理圆角图片、圆形图片的例子
2014/04/25 Python
python使用Tkinter显示网络图片的方法
2015/04/24 Python
tensorflow实现softma识别MNIST
2018/03/12 Python
Django 数据库同步操作技巧详解
2019/07/19 Python
Python三元运算与lambda表达式实例解析
2019/11/30 Python
便携式太阳能系统的创新者:GOAL ZERO
2018/02/04 全球购物
捷克购买家具网站:JENA nábytek
2020/03/19 全球购物
请编写一个 C 函数,该函数在给定的内存区域搜索给定的字符,并返回该字符所在位置索引值
2014/09/15 面试题
SQL Server笔试题
2012/01/10 面试题
令人啧啧称赞的经理推荐信
2013/11/07 职场文书
仓库主管岗位职责
2014/03/02 职场文书
党委班子纠正“四风”问题整改措施
2014/10/28 职场文书
先进集体事迹材料范文
2014/12/25 职场文书
房产证明范本
2015/06/19 职场文书