深度学习训练中常用的三个基础库tqdm&argparse&yaml

本文详细介绍了Python中用于训练过程中的三个常用工具:tqdm用于进度条控制,argparse处理命令行参数,yaml用于配置文件管理。通过示例展示了如何灵活使用这些工具来优化代码和配置管理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

训练常用工具[tqdm][argparse][yaml]

tqdm

1. 导入tqdm

from tqdm import * 

2. 传入可迭代对象

快速使用
import time
for i in tqdm(range(100)):
    time.sleep(0.01)
100%|██████████| 100/100 [00:01<00:00, 98.07it/s]

使用trange(100)简写tqdm(range(100))

for i in trange(100):
    time.sleep(0.01)
进阶1:通过update()自定义进度条每次更新的步长
with tqdm(total=200) as pbar:
    for i in range(20):  # 总共更新 20 次
        pbar.update(10)  # 每次更新步长为 10
        time.sleep(1)
  • with tqdm(total=200) as pbar::这行代码初始化了一个进度条对象pbar,设定总进度(total)为200。这里的total=200表示整个进度条代表的操作总量是200个单位。
  • for i in range(20)::设置一个循环,总共迭代20次。这表示我们计划通过20次迭代来完成总进度。
  • pbar.update(10):在每次循环中,调用pbarupdate方法来更新进度条。参数10表示每次循环我们完成了总任务的10个单位。由于总任务量是200个单位,而我们每次更新10个单位,因此需要更新20次才能达到总进度,这与range(20)设置的迭代次数相吻合。

中点在于每次迭代时,通过update(10)更新进度条的内容

如果只循环10次,最终只会在进度条为100/200时停止。

image-20240401173641194

进阶2:通过set_description和set_postfix自定义进度条内容
pbar = tqdm(total=100)
for i in range(10):
    time.sleep(0.1)  # 模拟你的任务
    pbar.set_description("Epoch{}".format(i))# 显示进度条左部的内容
    pbar.set_postfix(batch=i, loss=0.1*i, accuracy=0.95-0.01*i, refresh=False)# 更新后缀信息以反映更多细节
    pbar.update(10)

pbar.close()

进度条被设置了描述“Epoch i”,同时每次循环更新时,后缀显示了当前批次(batch)、损失(loss)和准确度(accuracy)。注意refresh=False参数可以用来减少更新频率,以避免在某些情况下的性能问题。

Epoch9: 100%|██████████| 100/100 [00:01<00:00, 97.32it/s, accuracy=0.86, batch=9, loss=0.9]

Argparse

通过argparse库,能够在命令行中设置python文件的启动参数,同时根据获取的参数配置python文件中的对应部分。

第一步:创建ArgumentParser对象

parser = argparse.ArgumentParser("This is a Arg Parser!!"<
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值