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()))

python tqdm库的使用

来源:https://www.cnblogs.com/softlin/p/13339766.html

标签:python,tqdm,库
0
投稿

猜你喜欢

  • Python3 JSON编码解码方法详解

    2023-10-12 15:46:43
  • 以用户为中心的WEB表单

    2010-08-03 12:11:00
  • 关于vue中的时间格式转化问题

    2024-05-13 09:44:07
  • 如何获得刚插入数据库的记录的ID号?

    2009-09-10 11:33:00
  • 实例讲解MySQL 慢查询

    2024-01-20 16:25:56
  • 在 Linux/Mac 下为Python函数添加超时时间的方法

    2023-08-17 14:27:12
  • Python数据类型详解(二)列表

    2021-10-26 08:47:11
  • python自动生成证件号的方法示例

    2023-05-25 07:42:11
  • 浅谈pycharm下找不到sqlalchemy的问题

    2022-06-17 14:51:15
  • 人脸检测实战终极之OpenCV+Python实现人脸对齐

    2023-10-01 02:03:07
  • 6个卓越Web设计细节[译]

    2010-03-24 18:34:00
  • Python SQLAlchemy入门教程(基本用法)

    2022-10-05 04:08:55
  • Pycharm配置opencv与numpy的实现

    2021-09-19 08:20:55
  • MSSQL转MYSQL,gb2312转utf-8无乱码解决方法

    2024-01-13 22:19:03
  • mysql提示Changed limits: max_open_files: 2048 max_connections: 1910 table_cache: 64的解决

    2024-01-23 11:01:32
  • python中列表元素连接方法join用法实例

    2023-01-20 17:49:31
  • python 移动图片到另外一个文件夹的实例

    2022-09-17 07:56:14
  • python保存网页图片到本地的方法

    2021-05-20 16:15:04
  • python连接MySQL、MongoDB、Redis、memcache等数据库的方法

    2024-01-13 15:35:25
  • 一篇文章带你了解kali局域网攻击

    2022-02-21 23:53:35
  • asp之家 网络编程 m.aspxhome.com