tqdm用法教程

tqdm 是一个用于 Python 的快速、可扩展的进度条库,它可以在循环中显示进度,使得长时间运行的任务更加直观和易于追踪。以下是 tqdm 的基本用法和一些高级功能介绍。

安装

首先,你需要安装 tqdm 库。可以通过 pip 来安装:

pip install tqdm

基本用法

1. 在 for 循环中使用

最简单的用法是在 for 循环中包裹迭代器:

from tqdm import tqdm

for i in tqdm(range(100)):
    # 模拟一些处理时间
    pass

这将在控制台上显示一个进度条,随着循环的进行逐步填充。

2. 使用 tqdm.tqdm 包装任意可迭代对象

你可以将任何可迭代对象传递给 tqdm 函数来包装它:

from tqdm import tqdm

items = ["item{}".format(i) for i in range(100)]
for item in tqdm(items):
    # 处理每个 item
    pass

高级用法

1. 设置描述和单位

你可以通过 desc 参数设置进度条的描述文字,通过 unit 参数设置进度条的单位:

from tqdm import tqdm

for i in tqdm(range(100), desc="Processing", unit="it"):
    # 模拟一些处理时间
    pass
2. 手动更新进度条

如果你需要手动控制进度条的更新(例如在循环之外或异步任务中),可以创建一个 tqdm 对象并调用其 update 方法:

from tqdm import tqdm

with tqdm(total=100) as pbar:
    for i in range(10):
        # 模拟一些处理时间
        pbar.update(10)
3. 显示额外信息

你可以在每次迭代时更新进度条的后缀信息,这对于显示额外的状态信息非常有用:

from tqdm import tqdm

for i in tqdm(range(100), desc="Processing", unit="it"):
    # 更新后缀信息
    tqdm.set_postfix({'loss': f'{i/100:.4f}'})
    # 模拟一些处理时间
    pass
4. 嵌套进度条

tqdm 还支持嵌套进度条,适合用于多层循环的情况:

from tqdm import tqdm

for i in tqdm(range(5), desc="Outer Loop"):
    for j in tqdm(range(100), desc="Inner Loop", leave=False):
        # 模拟一些处理时间
        pass

leave=False 参数确保内部进度条在完成时不会保留,避免终端输出混乱。

其他功能

  • 颜色和样式:可以通过 colour 参数设置进度条的颜色,例如 colour='green'
  • 动态刷新:对于频繁更新的进度条,可以设置 mininterval 参数来控制最小刷新间隔,防止终端输出过多。
  • 文件对象:可以将进度条输出到文件或其他流对象,而不是默认的标准输出。

示例代码

以下是一个完整的示例,展示了如何使用 tqdm 跟踪一个模拟训练过程中的进度:

from tqdm import tqdm
import time

total_epochs = 10
total_batches = 100

for epoch in tqdm(range(total_epochs), desc="Epochs", position=0):
    for batch in tqdm(range(total_batches), desc="Batches", position=1, leave=False):
        # 模拟训练过程
        time.sleep(0.01)

这个示例会在终端上显示两个嵌套的进度条,分别跟踪外层的 epochs 和内层的 batches。

希望这些信息能帮助你更好地理解和使用 tqdm!如果你有任何具体问题或需要进一步的帮助,请随时告诉我。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值