10 tqdm模块实现进度条_Parallel并行加快速度

 欢迎来到@一夜看尽长安花 博客,您的点赞和收藏是我持续发文的动力

对于文章中出现的任何错误请大家批评指出,一定及时修改。有任何想要讨论的问题可联系我:3329759426@qq.com 。发布文章的风格因专栏而异,均自成体系,不足之处请大家指正。

    专栏:

文章概述:对 tqdm模块实现进度条_Parallel并行加快速度 的介绍

关键词: tqdm模块实现进度条    Parallel并行加快速度

本文目录

Python实现进度条

简介:

示例:

简化一下形式

加快一下计算速度

使用trange,减慢运行速度

分轮次分批次进行训练

再添加一些信息

Python实现进度条

这个进度条在深度学习里非常常见

简介:

  • import math: 导入 Python 的标准数学库 math,用于访问数学函数。这里使用 math.factorial 函数来计算阶乘。
  • from tqdm import tqdm: 从 tqdm 库中导入 tqdm 函数。tqdm 是一个用于显示进度条的库,它可以帮助我们在长时间运行的操作中跟踪进度。

示例:

import math
from tqdm import tqdm
results = []

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

简化一下形式

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

加快一下计算速度

使用并行的方式:

from joblib import Parallel, delayed

  • joblib: 一个用于并行计算和优化性能的库。Paralleldelayedjoblib 提供的两个重要工具,用于并行执行任务。
    • Parallel: 用于并行执行任务的类。可以指定 n_jobs 参数来设置并行运行的作业数量(即线程或进程数)。
    • delayed: 一个装饰器,用于将函数调用包装成一个延迟执行的任务,以便 Parallel 能够并行处理这些任务。
import math
import time
from tqdm import tqdm
from joblib import Parallel, delayed


#没有并行的操作
results = [math.factorial(x) for x in tqdm(range(8000))]

#有并行的操作
results = Parallel(n_jobs=2)(delayed(math.factorial)(x) for x in tqdm(range(8000)))

通过两者的时间比较,可以发现并行的方式确实显著的提高了运行速度

使用trange,减慢运行速度

import math
import time
import random
from tqdm import tqdm, trange

with trange(1000) as t:
  for i in t:
    sleeping_time = random.randint(1, 100)/100
    time.sleep(sleeping_time)

打印速度非常缓慢,就不显示了

分轮次分批次进行训练

import math
import time
import random
from tqdm import tqdm, trange

#写了trange自动有进度条
with trange(1000) as t:
  #分轮次
  for i in t:
    sleeping_time = random.randint(1, 100)/100
    time.sleep(sleeping_time)
    #每个轮次分10个批次(不需要接受值,所以直接用下划线_)
    for _ in trange(10):
      time.sleep(0.5)
    

再添加一些信息

import math
import time
import random
from tqdm import tqdm, trange

#写了trange自动有进度条
with trange(1000) as t:
  for i in t:
    #增加轮次信息
    t.set_description(f"Iteration number {i+1}")
    sleeping_time = random.randint(1, 100)/100
    time.sleep(sleeping_time)
    #增加后缀,something是随便写的,一般深度学习的时候会写成测试的准确度
    t.set_postfix(something=random.randint(0,100),
           sleeping_time=sleeping_time)
    
    if i%100 == 0 :
      for _ in trange(10):
        time.sleep(0.5)
    

上面是在jupyter notebook里运行的,没显示something

这个是在pycharm里运行的,显示了something

  • 13
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值