Python---实现进度条

from tqdm import tqdm, trange  # 导入 tqdm 进度条库

 效果大致是这样的:方便看程序的运行进度。

介绍tqdm库中的两个类分别是tqdm和trange都可以实现进度条功能。

两者区别:

  tqdm: 是一个通用的进度条工具,可以对任何可迭代对象进行包装。例如,您可以使用 tqdm 来包装一个列表、字典、文件等,从而在迭代过程中显示进度条。

  trange: 是 tqdm 的一个封装,专门用于生成范围(range)的进度条。实际上,trange 是 tqdm(range(n)) 的简写形式,适用于简单的迭代。

总的来说:tqdm 适用范围广,trange 写法更简洁。

 1.对于tqdm:

生成 阶乘的列表:

from tqdm import tqdm
import math

results = []

for i in tqdm(range(7000)):
    results.append(math.factorial(i))

# 也可以用列表推导式 

results = [math.factorial(x) for x in tqdm(range(7000))]

 2.对于trange:

把 tqdm(range(7000))变成 trange(7000)

 对于range范围的写法更简洁

进度条样式的设置

因为在训练会分轮分批的时候,如果进度条都一个样就不好看了

 with trange(1000) as t:
     for i in t:
         t.set_description(f'轮次: {i+1}')
         sleeping_time = random.randint(1, 100) / 100  
         time.sleep(sleeping_time)

         for j in trange(10):
             time.sleep(0.5)

         t.set_postfix(something=random.randint(0,100), sleeping_time=sleeping_time)

set_description用来设置进度条的描述信息,set_postfix用来设置进度条的后缀信息 

 效率的提升---joblib

joblib 的并行计算可以提高了计算效率,尤其是在处理大量数据。

results = Parallel(n_jobs=3)(delayed(math.factorial)(x) for x in tqdm(range(8000)))

 parallel可以并行执行任务,用3个cpu同时执行任务,delayed可以完成任务的拆分

完整源码,方便对比学习。

from tqdm import tqdm, trange 
import math
from joblib import Parallel, delayed
import time
import random

# results = []
# for i in tqdm(range(8000)):
#     results.append(math.factorial(i))

# results = [math.factorial(x) for x in tqdm(range(8000))]

results = Parallel(n_jobs=3)(delayed(math.factorial)(x) for x in tqdm(range(8000)))
# # parallel可以并行执行任务,delayed可以完成任务的拆分,tqdm可以显示进度条

# # 分轮次分批次训练
# with trange(1000) as t: 
#     for i in t:
#         t.set_description(f'轮次: {i+1}')
#         sleeping_time = random.randint(1, 100) / 100  
#         time.sleep(sleeping_time)

#         for j in trange(10):
#             time.sleep(0.5)

#         t.set_postfix(something=random.randint(0,100), sleeping_time=sleeping_time)

'''
tqdm可以显示进度条,trange用来显示进度条,
set_description用来设置进度条的描述信息,set_postfix用来设置进度条的后缀信息,
'''

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值