Python Multiprocessing多进程 使用tqdm显示进度条的实现
作者:SiyuanChen 时间:2021-04-03 19:15:08
1.背景
在python运行一些,计算复杂度比较高的函数时,服务器端单核CPU的情况比较耗时,因此需要多CPU使用多进程加快速度
2.函数要求
笔者使用的是:pathos.multiprocessing 库,进度条显示用tqdm库,安装方法:
pip install pathos
安装完成后
from pathos.multiprocessing import ProcessingPool as Pool
from tqdm import tqdm
这边使用pathos的原因是因为,multiprocessing 库中的Pool 函数只支持单参数输入,例如 f(x) = x**2,而不能处理 f (x,y) = x+y 这类的函数
更不用说一些需要参数的函数 例如:F(x , alpha=0.5, gamma = 0.1) 这样。
3.代码
定义一个 函数 F [ X ] ,其中,输入X是可以在第一个维度上迭代的array, 大小:[ num_X, len ] , 在第一维度 num_X 上进行迭代。
def F(X,lamda=10,weight=0.05):
res={}
res.update(F_1(X,lamda=lamda,weight=weight))
res.update(F_2(X,lamda=lamda,weight=weight))
return res
x 是 F 的输出,是一个dict (字典格式)
这里的两个函数超参数 lamda 和 weight 虽然每次调用的时候值是一样的,但是还是需要放一个数组每次用于迭代。
zip_lamda = [lamda for i in range(len(X)) ]
zip_weight = [weight for i in range(len(X)) ]
with tqdm(total=len(cold_sequences)) as t:
for i, x in enumerate(pool.imap(F,X,zip_lamda,zip_weight)):
X[i,:] = [x[key] for key in x.keys()]
Y[i,] = 0
t.update()
pool.close()
pool.join()
4.结果
mutiprocess 加速前
mutiprocess 加速后
来源:https://www.cnblogs.com/siyuan1998/p/11246792.html
标签:python,multiprocessing,多进程,tqdm,进度条
![](/images/zang.png)
![](/images/jiucuo.png)
猜你喜欢
Python subprocess库六个实例快速掌握
2021-02-22 05:53:56
MySQL数据库之UPDATE更新语句精解
2009-03-20 15:21:00
python使用Faker进行随机数据生成
2023-12-21 14:24:33
![](https://img.aspxhome.com/file/2023/9/85129_0s.png)
解决Python图形界面中设置尺寸的问题
2022-11-12 12:05:02
![](https://img.aspxhome.com/file/2023/7/100787_0s.jpg)
JS中getElementsByClassName与classList兼容性问题解决方案分析
2023-08-25 05:39:06
python 删除列表里所有空格项的方法总结
2023-01-28 19:37:24
![](https://img.aspxhome.com/file/2023/9/65479_0s.jpg)
Python中多线程thread与threading的实现方法
2021-08-24 08:34:38
Python 中导入csv数据的三种方法
2022-02-24 10:12:10
python使用sessions模拟登录淘宝的方式
2023-01-09 12:05:25
一个不错网速测试代码
2008-07-20 13:41:00
Python爬取网页中的图片(搜狗图片)详解
2023-06-24 00:34:45
![](https://img.aspxhome.com/file/2023/2/70852_0s.jpg)
python爬取网页内容转换为PDF文件
2023-04-29 10:53:12
Python实现实时显示进度条的六种方法
2022-03-27 02:09:35
![](https://img.aspxhome.com/file/2023/2/70112_0s.jpg)
Python标准库06之子进程 (subprocess包) 详解
2021-05-24 02:00:25
Django框架实现在线考试系统的示例代码
2021-05-24 23:07:00
![](https://img.aspxhome.com/file/2023/0/89000_0s.png)
Python实现自动清理电脑垃圾文件详解
2023-05-18 00:50:22
![](https://img.aspxhome.com/file/2023/7/90467_0s.png)
Python调用腾讯云短信服务发送手机短信
2021-10-07 16:55:38
![](https://img.aspxhome.com/file/2023/2/112122_0s.png)
python数值基础知识浅析
2021-12-10 07:07:49
Python decorator拦截器代码实例解析
2022-04-07 11:03:47
Python 余弦相似度与皮尔逊相关系数 计算实例
2022-02-24 01:32:52
![](https://img.aspxhome.com/file/2023/5/114495_0s.jpg)