python tqdm模块制作个性化进度条

python tqdm模块制作个性化进度条

tqdm模块默认的进度条里会有不让人喜欢的剩余时间与速度显示

tqdm模块的源代码,可以看到,关于构造函数的参数说明,其中有一个bar_format参数定义了进度框的形状

def __init__(self, iterable=None, desc=None, total=None, leave=True, file=None,
                 ncols=None, mininterval=0.1, maxinterval=10.0, miniters=None,
                 ascii=None, disable=False, unit='it', unit_scale=False,
                 dynamic_ncols=False, smoothing=0.3, bar_format=None, initial=0,
                 position=None, postfix=None, unit_divisor=1000, write_bytes=None,
                 lock_args=None, nrows=None, colour=None, delay=0, gui=False,
                 **kwargs):
        """
        Parameters
        ----------
        bar_format  : str, optional
            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, eta.
            Note that a trailing ": " is automatically removed after {desc}
            if the latter is empty.

bar_format默认的参数为{l_bar}{bar}{r_bar},其中{r_bar}就是进度条后面的描述信息因此,为了不显示时间与速度,只需要更改bar_format参数,就能得到个性化的进度条。
bar_format = '{l_bar}{bar}| [{n_fmt}/{total_fmt}{postfix}]'
下面是示例代码

from tqdm import tqdm
from time import sleep
with tqdm(total=100,desc=f'Epoch {1}/{100}',postfix=dict,mininterval=0.3, bar_format = '{l_bar}{bar}| [{n_fmt}/{total_fmt}{postfix}]') as pbar:
    for i in range(100):
        pbar.set_postfix(**{'loss': 0.1, 'lr': 0.01})
        pbar.update(1)
        if i == 50:
            pbar.set_description(f'Epoch {2}/{100}')
        sleep(0.1)
    pbar.close()

直接使用for

可以直接使用for循环

from tqdm import tqdm
from time import sleep
a = [1,2,3]
pbar = tqdm(a, desc=f'Epoch {1}/{100}', postfix=dict)
for i in pbar:
    pbar.set_postfix(**{'loss': i})
    sleep(0.1)

多进度条

import time
from tqdm import tqdm

for j in range(5):
    bar = tqdm(total=100, desc=f"dec {j}")
    for i in range(100):
        time.sleep(0.03)
        bar.update(1)
    bar.close()
  • 1
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值