python当中的进度条怎么弄?tqdm的使用和例子

tqdm是一个用于显示进度条的Python库,支持多种语言中的名称。它适用于各种迭代器,可以在循环中提供视觉反馈,显示已完成的百分比、速度等信息。在深度学习中,tqdm可用于监控训练过程,如显示epoch和loss等信息。
摘要由CSDN通过智能技术生成

tqdm:是一个快速、可扩展的进度条

tqdm 在阿拉伯语中是“进度条”(taqadum )的意思,而在西班牙语中tqdm 是te quiero demasiado(I love you so much)的缩写。
tqdm.tqdm的构造函数

tqdm(iterable=None, desc=None, total=None, leave=True, file=None, ncols=None, mininterval=0.1, maxinterval=10, 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)
iterable: 可迭代的对象, 在⼿动更新时不需要进⾏设置
desc: 字符串, 左边进度条描述⽂字
total: 总的项⽬数
leave: bool值, 迭代完成后是否保留进度条
file: 输出指向位置, 默认是终端, ⼀般不需要设置
ncols: 调整进度条宽度, 默认是根据环境⾃动调节长度, 如果设置为0, 就没有进度条, 只有输出的信息
unit: 描述处理项⽬的⽂字, 默认是it, 例如: 100 it/s, 处理照⽚的话设置为img ,则为 100 img/s
unit_scale: ⾃动根据国际标准进⾏项⽬处理速度单位的换算, 例如 100000 it/s >> 100k it/s
colour: 进度条颜色

1.tqdm包安装

pip install tqdm

2.引用

引用包的时候注意细节,不是直接引用,而是引用里面的一个类

from tqdm import tqdm
或者
from tqdm import trange

3.使用方法

如果希望循环能够显示进度,那么只需要将循环中的可迭代对象用 tqdm 封装 tqdm(iterable),

例如代码1:

import time
from tqdm import tqdm
for i in tqdm(range(10)):
    time.sleep(0.5)

输出结果

100%|██████████| 10/10 [00:05<00:00,  1.96it/s]

例如代码2:

import time
from tqdm import tqdm
for i in tqdm([1,2,3,4,5,6]):
    time.sleep(0.5)

输出结果

100%|██████████| 6/6 [00:03<00:00,  1.97it/s]

具体的含义为:

进度百分比|进度条| 当前迭代数/总迭代个数,[消耗时间<剩余时间,迭代的速度]

例如代码3:

import time
from tqdm import tqdm
for i in tqdm([1,2,3,4,5,6]):
    time.sleep(0.5)

输出结果

100%|██████████| 10/10 [00:05<00:00,  1.97it/s]

具体的含义为:

进度百分比|进度条| 当前迭代数/总迭代个数,[消耗时间<剩余时间,迭代的速度]

当然可以通过colour参数也可把进度条换成其他颜色

import time
from tqdm import tqdm
for i in tqdm([1,2,3,4,5,6],colour="green"):
   time.sleep(0.5)

在这里插入图片描述


4.在深度学习当中如何使用:

import time
from tqdm import tqdm

to_epoch = 10
da_loader = range(100)
for epoch in range(to_epoch):
   with tqdm(total=len(da_loader)) as tqdm1:  # 使用需要的参数对tqdm进行初始化
       tqdm1.set_description('epoch: {}/{}'.format(epoch + 1, to_epoch),refresh=True)  # 设置前缀 一般为epoch的信息
       for data in da_loader:
           time.sleep(0.01)
           tqdm1.set_postfix(loss='{:.2f}'.format(data))  # 设置你想要在本次循环内实时监视的变量  可以作为后缀打印出来
           tqdm1.update(1)  # 设置你每一次想让进度条更新的iteration 大小


输出在这里插入图片描述

参考

https://zhuanlan.zhihu.com/p/424165507
https://blog.csdn.net/qq_41554005/article/details/117297861
https://zhuanlan.zhihu.com/p/499713611

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值