Home tqdm常用操作
Post
Cancel

tqdm常用操作

关于本页

tqdm及一个基于Python的开源包,可以很方便地为程序运行加上进度条,方便知道程序运行进度。本页结合官方文档,记录一些个人的常用操作。

基本操作

iterable-based

Wrap tqdm() around any iterable:

1
2
3
4
5
6
from tqdm import tqdm
for i in tqdm(range(10)):
    ...

for i in tqdm(["a", "b", "c", "d"]):
    ...

manual

手动指定进度条总长度total与每次更新长度update()

1
2
3
4
with tqdm(total=100) as pbar:
    for i in range(10):
        ...
        pbar.update(10)

1
2
3
4
5
pbar = tqdm(total=100)
for i in range(10):
    ...
    pbar.update(10)
pbar.close()         # do not forget this

其他

让进度条显示额外信息

对于

1
2
3
4
from tqdm import tqdm

for i in tqdm(range(100)):
    loss = ...

进度条默认显示为

1
76%|████████████████████████        | 76/100 [00:33<00:10, 229.00it/s]

但我们可以自定义输出额外的信息,如

1
2
3
4
5
6
7
8
9
10
11
pbar = tqdm(total=len(train_dataloader))
pbar.set_description('Epoch {}'.format(epoch))
for i, batch in enumerate(train_dataloader):
    loss1 = ...
    loss2 = ...
    pbar.set_postfix(
        loss1='{:4f}'.format(loss1.item()), 
        loss2='{:4f}'.format(loss2.item())
    )
    pbar.update()
pbar.close()

此时显示为

1
Epoch 0:   2%|██      | 88/5175 [00:02<02:21, 35.90it/s, loss1=2.894164, loss2=9.039881]
This post is licensed under CC BY 4.0 by the author.

Shell学习

tensorboard使用