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