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 相关文章推荐
Linux下使用python自动修改本机网关代码分享
May 21 Python
Python 递归函数详解及实例
Dec 27 Python
深入浅析python with语句简介
Apr 11 Python
Python实现简单的用户交互方法详解
Sep 25 Python
详解Python的数据库操作(pymysql)
Apr 04 Python
Python实现朴素贝叶斯的学习与分类过程解析
Aug 24 Python
Linux下通过python获取本机ip方法示例
Sep 06 Python
python应用文件读取与登录注册功能
Sep 23 Python
Python OpenCV图像指定区域裁剪的实现
Oct 30 Python
python随机生成库faker库api实例详解
Nov 28 Python
Python基于pygame实现单机版五子棋对战
Dec 26 Python
Python读取YAML文件过程详解
Dec 30 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
ThinkPHP中url隐藏入口文件后接收alipay传值的方法
2014/12/09 PHP
Linux环境下php实现给网站截图的方法
2016/05/03 PHP
关于文本限制字数的js代码
2007/04/02 Javascript
JavaScript 10件让人费解的事情
2010/02/15 Javascript
js通过googleAIP翻译PHP系统的语言配置的实现代码
2011/10/17 Javascript
JS控制图片等比例缩放的示例代码
2013/12/24 Javascript
JavaScript通过使用onerror设置默认图像显示代替alt
2016/03/01 Javascript
javascript常见数字进制转换实例分析
2016/04/21 Javascript
AngularJS实现单独作用域内的数据操作
2016/09/05 Javascript
原生js的RSA和AES加密解密算法
2016/10/08 Javascript
JavaScript中的toString()和toLocaleString()方法的区别
2017/02/15 Javascript
Bootstrap学习笔记之进度条、媒体对象实例详解
2017/03/09 Javascript
解决使用Vue.js显示数据的时,页面闪现原始代码的问题
2018/02/11 Javascript
30分钟快速入门掌握ES6/ES2015的核心内容(上)
2018/04/18 Javascript
浅析vue-router jquery和params传参(接收参数)$router $route的区别
2018/08/03 jQuery
详解微信小程序框架wepy踩坑记录(与vue对比)
2019/03/12 Javascript
Layui表格监听行单双击事件讲解
2019/11/14 Javascript
JavaScript实现飞舞的泡泡效果
2020/02/07 Javascript
安装多版本Vue-CLI的实现方法
2020/03/24 Javascript
python 实现归并排序算法
2012/06/05 Python
Python使用正则表达式过滤或替换HTML标签的方法详解
2017/09/25 Python
python实现微信自动回复及批量添加好友功能
2019/07/03 Python
python如何随机生成高强度密码
2020/08/19 Python
CSS3田字格列表的样式编写方法
2018/11/22 HTML / CSS
雅诗兰黛澳大利亚官网:Estée Lauder澳大利亚
2019/05/31 全球购物
彪马香港官方网上商店:PUMA香港
2020/12/06 全球购物
销售类个人求职信范文
2013/09/25 职场文书
酒店值班经理的工作职责范本
2014/02/18 职场文书
党支部活动策划方案
2014/08/18 职场文书
党员评议表自我评价范文
2014/10/20 职场文书
工作经历证明书范文
2014/11/02 职场文书
2014年仓库保管员工作总结
2014/12/03 职场文书
大学生个人简历自荐信
2015/03/06 职场文书
小学少先队活动总结
2015/05/08 职场文书
纪检监察立案决定书
2015/06/24 职场文书
python spilt()分隔字符串的实现示例
2021/05/21 Python