tqdm 是一种呈现循环进度的工具包,本文讲讲述他的常用用法。

Example 1

假设FL框架中一共有10个用户,每次随机抽取5个用户进行更新,一共训练6个epochs,结合tqdm显示训练进程的代码框架如下:

for epoch in range(6):
    print("epoch:", epoch)
    for idx in tqdm(np.random.choice(range(10), 5, replace=False), desc='Epoch:%d, lr:%f' % (100, 0.5)):
        print(idx)
        #time.sleep(2)

out:
在这里插入图片描述

如果说我添加一行 time.sleep(2),那效果就不一样了:

for epoch in range(6):
    print("epoch:", epoch)
    for idx in tqdm(np.random.choice(range(10), 5, replace=False), desc='Epoch:%d, lr:%f' % (100, 0.5)):
        print(idx)
        time.sleep(2)

这时候由于字循环也需要时间,它就会慢慢的打印出子循环的进度条:
在这里插入图片描述