Python Multiprocessing多进程 使用tqdm显示进度条的实现


Posted in Python onAugust 13, 2019

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 加速前

Python Multiprocessing多进程 使用tqdm显示进度条的实现

mutiprocess 加速后

Python Multiprocessing多进程 使用tqdm显示进度条的实现

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
在Python的Django框架中显示对象子集的方法
Jul 21 Python
分享给Python新手们的几道简单练习题
Sep 21 Python
python Celery定时任务的示例
Mar 13 Python
python中virtualenvwrapper安装与使用
May 20 Python
Python安装与基本数据类型教程详解
May 29 Python
pandas中DataFrame修改index、columns名的方法示例
Aug 02 Python
python sklearn常用分类算法模型的调用
Oct 16 Python
Ranorex通过Python将报告发送到邮箱的方法
Jan 12 Python
Pycharm中import torch报错的快速解决方法
Mar 05 Python
详解向scrapy中的spider传递参数的几种方法(2种)
Sep 28 Python
python实现数学模型(插值、拟合和微分方程)
Nov 13 Python
python爬虫线程池案例详解(梨视频短视频爬取)
Feb 20 Python
python如何将多个PDF进行合并
Aug 13 #Python
python批量读取文件名并写入txt文件中
Sep 05 #Python
Flask框架实现的前端RSA加密与后端Python解密功能详解
Aug 13 #Python
Python学习笔记之列表推导式实例分析
Aug 13 #Python
Django中create和save方法的不同
Aug 13 #Python
Python学习笔记之函数的定义和作用域实例详解
Aug 13 #Python
Python爬取智联招聘数据分析师岗位相关信息的方法
Aug 13 #Python
You might like
动态新闻发布的实现及其技巧
2006/10/09 PHP
PHP 处理图片的类实现代码
2009/10/23 PHP
php获取本周星期一具体日期的方法
2015/04/20 PHP
TNC vs BOOM BO3 第二场2.13
2021/03/10 DOTA
一个js实现的所谓的滑动门
2007/05/23 Javascript
向fckeditor编辑器插入指定代码的方法
2007/05/25 Javascript
JS无限树状列表实现代码
2011/01/11 Javascript
分享10篇优秀的jQuery幻灯片制作教程及应用案例
2011/04/16 Javascript
ASP.NET jQuery 实例3 (在TextBox里面阻止复制、剪切和粘贴事件)
2012/01/13 Javascript
JavaScript中instanceof与typeof运算符的用法及区别详细解析
2013/11/19 Javascript
在javascript中实现函数数组的方法
2013/12/25 Javascript
jQuery中.live()方法的用法深入解析
2013/12/30 Javascript
jQuery控制Div拖拽效果完整实例分析
2015/04/15 Javascript
js中 计算两个日期间的工作日的简单实例
2016/08/08 Javascript
jquery submit()不能提交表单的解决方法
2017/04/24 jQuery
Angular之toDoList的实现代码示例
2017/12/02 Javascript
微信小程序图片选择区域裁剪实现方法
2017/12/02 Javascript
百度小程序之间的页面通信过程详解
2019/07/18 Javascript
Vue + Element UI图片上传控件使用详解
2019/08/20 Javascript
pycharm 将django中多个app放到同个文件夹apps的处理方法
2018/05/30 Python
Django项目主urls导入应用中views的红线问题解决
2019/08/10 Python
python3 实现函数写文件路径的正确方法
2019/11/27 Python
CSS3 3D位移translate效果实例介绍
2016/05/03 HTML / CSS
顶级宝石首饰网络零售商:Angara
2016/10/25 全球购物
贝嫂喜欢的婴儿品牌,个性化的婴儿礼物:My 1st Years
2017/11/19 全球购物
Sasa莎莎海外旗舰店:香港莎莎美妆平台
2018/03/21 全球购物
香蕉共和国工厂店:Banana Republic Factory
2018/06/09 全球购物
医药工作岗位求职信分享
2013/12/31 职场文书
小区文明倡议书
2014/05/16 职场文书
2014大学校园光棍节活动策划书
2014/09/29 职场文书
机械专业毕业生自我鉴定2014
2014/10/04 职场文书
2014年小学美术工作总结
2014/12/20 职场文书
小区环境卫生倡议书
2015/04/29 职场文书
致创业的您:这类人不适合餐饮创业
2019/08/19 职场文书
Python 内置函数速查表一览
2021/06/02 Python
Python测试框架pytest核心库pluggy详解
2022/08/05 Golang