python tqdm库的使用
作者:AiFly 发布时间:2023-10-30 22:32:44
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()))
来源:https://www.cnblogs.com/softlin/p/13339766.html


猜你喜欢
- Python break 语句Python break语句,就像在C语言中,打破了最小封闭for或while循环。break语句用来终止循环
- pygame对键盘的连续监听,供大家参考,具体内容如下大家请看下面这一段代码:for event in pygame.event.get()
- 关于杨辉三角是什么东西,右转 * :杨辉三角稍微看一下直观一点的图:11112113311464115101051161520156117
- 问题出现与解决Pandas进行数据处理之后,假如想将其转化为json,会出现一个bug,就是中文文字是以乱码存储的,也就是\uXXXXXX的
- rs.open sql,conn:如果sql是delete,update,insert则会返
- 接着上一篇《服务端XMLHTTP(ServerXMLHTTP in ASP)基本应用(上)》继续讲讲ServerXMLH
- UTC与DSTUTC可以视为一个世界统一的时间,以原子时为基础,其他时区的时间都是在这个基础上增加或减少的,比如中国的时区就为UTC+8。D
- 本文实例为大家分享了PyQt5实现暗黑风格的计时器的具体代码,供大家参考,具体内容如下主要是学习多线程知识,使用的是QTime(),但是似乎
- 时间对象(Date())比较简单,本文旨在为初学者入门使用,大牛可略过!本文承接基础知识实例,说一下实例的要求:在页面中输出当前客户端时间(
- 背景:有一个爬虫服务,需要定时从公开网站上拉取一些数据,为了避免被识别为爬虫(防爬虫的识别需要根据很多特征,时间仅仅是其中一个维度),需要在
- 在计算机科学中,二进制是一种由 0 和 1 组成的数字系统。Python 中提供了一种易于使用的方式来将二进制字符串转换为整数,并支持多种进
- 目录一、路由配置二、vue页面嵌套三、嵌套联系一、路由配置const routes = [ { pat
- 1.折线图 plt.plot()常用的一些参数:颜色(color):‘c’ 青红(cyan)&
- 当现有video播放器不能满足需求时,需要自己对video进行封装。video事件loadstart: 在视频开始加载时触发,给curren
- 题目描述这篇博文是数字图像处理的大作业. 题目描述:给定40张不同风格的纹理图片,大小为512*512,要求将每张图片分为大小相同的9块,利
- 一、前言在Python中,类表示具有相同属性和方法的对象的集合。在使用类时,需要先定义类,然后再创建类的实例,通过类的实例就可以访问类中的属
- 我就废话不多说了,大家还是直接看代码吧!database = [ { "name"
- 一、贝叶斯分类介绍贝叶斯分类器是一个统计分类器。它们能够预测类别所属的概率,如:一个数据对象属于某个类别的概率。贝叶斯分类器是基于贝叶斯定理
- 我就废话不多说了,大家还是直接看代码吧~#文件复制import ossrc_path=r'E:\Pycharm\python100题
- 直方图,又称质量分布图,是一种统计报告图,由一系列高度不等的纵条或线段表示数据分布情况。用横轴表示数据类型,纵轴表示分布情况。直方图是数值数