关于本页
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]