Python常用库—tqdm

栏目: IT技术 · 发布时间: 4年前

内容简介:Tqdm库比较常用,用于显示进度条。简单用法:100%|███████████████████| 2/2 [00:00<00:00, 1998.72it/s]

tqdm

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


以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

算法与数据结构(第二版)

算法与数据结构(第二版)

傅清祥、王晓东 / 电子工业出版社 / 2001-8-1 / 34.00

本书是《计算机学科教学计划1993》的配套教材之一。它覆盖了《计算机学科教学计划1993》中开列的关于算法与数据结构主科目的所有知识单元。其主要内容有:算法与数据结构的概念、抽象数据类型(ADT)、基于序列的ADT(如表,栈,队列和串等)。反映层次关系的ADT(如树,堆和各种平衡树等)、关于集合的ADT(如字典,优先队列和共查集等)、算法设计的策略与技巧、排序与选择算法、图的算法、问题的计算复杂性一起来看看 《算法与数据结构(第二版)》 这本书的介绍吧!

HTML 压缩/解压工具
HTML 压缩/解压工具

在线压缩/解压 HTML 代码

HEX CMYK 转换工具
HEX CMYK 转换工具

HEX CMYK 互转工具

HSV CMYK 转换工具
HSV CMYK 转换工具

HSV CMYK互换工具