HW4_SelfAttention_python部分

python中tqdm库的使用

这段代码使用了 tqdm 库来创建一个进度条,用于在运行循环时显示进度。具体来说,这段代码创建了一个名为 pbar 的进度条对象,并配置了几个参数。下面是对每个参数的解释:

tqdm

tqdm 是一个用于显示进度条的 Python 库,可以轻松地在长时间运行的循环中添加进度条显示,提供即时的反馈信息。

参数解释

  • total=valid_steps:这是进度条的总步数。valid_steps 应该是一个整数,表示循环的总迭代次数。

  • ncols=0:这是进度条的宽度。ncols=0 表示让 tqdm 自动调整进度条的宽度,以适应终端的宽度。

  • desc="Train":这是进度条的描述文字,在进度条的左侧显示。这可以帮助用户理解当前进度条对应的任务。在这个例子中,描述文字是 “Train”,表明这个进度条用于训练过程。

  • unit=" step":这是进度条的单位。在进度条的右侧显示进度的单位。在这个例子中,单位是 " step",表明进度条的每一步对应一个步骤。

示例用法

假设你有一个训练过程,你想要显示进度,可以这样使用这个进度条:

from tqdm import tqdm

# 假设 valid_steps 是一个表示总步数的整数
valid_steps = 100

# 创建进度条
pbar = tqdm(total=valid_steps, ncols=0, desc="Train", unit=" step")

# 模拟一个训练过程
for step in range(valid_steps):
    # 你的训练代码,例如:
    # train_one_step()
    
    # 更新进度条
    pbar.update(1)

# 关闭进度条
pbar.close()

运行结果

在终端中运行上述代码时,你会看到一个动态的进度条,类似于:

Train:  10%|████▎                             | 10/100 [00:01<00:09,  9.63 step/s]

这个进度条显示了当前的进度百分比、进度条的图形表示、已完成的步骤数、总步骤数、经过的时间以及步骤的执行速度等信息。

总结

pbar = tqdm(total=valid_steps, ncols=0, desc="Train", unit=" step") 这段代码通过配置 tqdm 进度条库,为一个循环过程创建了一个进度条对象,方便在终端中直观地显示和监控进度。

python中tqdm库的update方法解释

pbar.update()tqdm 库中的一个方法,用于手动更新进度条的当前进度。每次调用 update(n),进度条会前进 n 步(或单位)。如果不指定 n,默认前进 1 步。这个方法在循环或其他迭代过程中非常有用,因为它可以让进度条动态地反映当前进度。

作用

pbar.update(n) 的主要作用是:

  1. 更新进度条的当前进度:通过指定的步数(单位)前进,刷新进度条显示。
  2. 显示实时进度信息:结合其他 tqdm 方法,可以显示额外的状态信息,如处理速度、剩余时间等。

使用示例

以下是一些使用 pbar.update() 的具体示例:

示例1:基本用法
from tqdm import tqdm
import time

# 假设有100个步骤需要处理
total_steps = 100

# 创建进度条
pbar = tqdm(total=total_steps, desc="Processing")

# 模拟处理过程
for i in range(total_steps):
    # 模拟每个步骤的处理时间
    time.sleep(0.1)
    
    # 更新进度条,前进1步
    pbar.update(1)

# 关闭进度条
pbar.close()
示例2:一次更新多步

有时一个循环内处理的单位可能不止一步,可以在 pbar.update() 中指定步数:

from tqdm import tqdm
import time

# 假设有100个数据块,每个数据块包含10个步骤
total_blocks = 100
steps_per_block = 10

# 创建进度条
pbar = tqdm(total=total_blocks * steps_per_block, desc="Processing")

# 模拟处理过程
for i in range(total_blocks):
    # 模拟每个数据块的处理时间
    time.sleep(0.5)
    
    # 每个数据块包含10个步骤,更新进度条前进10步
    pbar.update(steps_per_block)

# 关闭进度条
pbar.close()
示例3:结合 set_postfix 使用

在处理过程中,可以结合 set_postfix 方法显示额外信息:

from tqdm import tqdm
import time
import random

# 假设有100个步骤需要处理
total_steps = 100

# 创建进度条
pbar = tqdm(total=total_steps, desc="Training")

# 模拟处理过程
for i in range(total_steps):
    # 模拟每个步骤的处理时间
    time.sleep(0.1)
    
    # 模拟损失值和准确度
    loss = random.uniform(0, 1)
    accuracy = random.uniform(0, 1)
    
    # 更新进度条,前进1步
    pbar.update(1)
    
    # 设置后缀信息
    pbar.set_postfix({"loss": f"{loss:.4f}", "accuracy": f"{accuracy:.4f}"})

# 关闭进度条
pbar.close()

总结

pbar.update() 方法在 tqdm 进度条中起到更新进度条当前进度的作用。通过在循环或迭代过程中调用它,进度条可以动态地反映当前处理进度,结合其他方法如 set_postfix,可以提供详细的实时状态信息,从而帮助用户更好地监控和管理长时间运行的任务。

  • 6
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值