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字符串特性及常用字符串方法的简单笔记
Jan 04 Python
浅谈Python 递归算法指归
Aug 22 Python
详解Python3迁移接口变化采坑记
Oct 11 Python
Python 实现OpenCV格式和PIL.Image格式互转
Jan 09 Python
win10安装python3.6的常见问题
Jul 01 Python
Python 在函数上添加包装器
Jul 28 Python
Python连接mysql方法及常用参数
Sep 01 Python
python 装饰器的实际作用有哪些
Sep 07 Python
python3定位并识别图片验证码实现自动登录功能
Jan 29 Python
如何用python识别滑块验证码中的缺口
Apr 01 Python
python缺失值的解决方法总结
Jun 09 Python
Python简易开发之制作计算器
Apr 28 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
javascript打开新窗口同时关闭旧窗口
2009/01/16 Javascript
jquery tools之tooltip
2009/07/25 Javascript
js中字符替换函数String.replace()使用技巧
2011/08/14 Javascript
纯css+js写的一个简单的tab标签页带样式
2014/01/28 Javascript
教你如何使用node.js制作代理服务器
2014/11/26 Javascript
jquery图片轮播特效代码分享
2020/04/20 Javascript
原生JS实现平滑回到顶部组件
2016/03/16 Javascript
使用jquery提交form表单并自定义action的实现代码
2016/05/25 Javascript
JS遍历ul下的li点击弹出li的索引的实现方法
2016/09/19 Javascript
Node.js的文件权限及读写flag详解
2016/10/11 Javascript
JavaScript中的 attribute 和 jQuery中的 attr 方法浅析
2017/01/04 Javascript
node.js实现回调的方法示例
2017/03/01 Javascript
深究AngularJS——ng-checked(回写:带真实案例代码)
2017/06/13 Javascript
浅谈JavaScript find 方法不支持IE的问题
2017/09/28 Javascript
vue2.0安装style/css loader的方法
2018/03/14 Javascript
bing Map 在vue项目中的使用详解
2018/04/09 Javascript
Angular网络请求的封装方法
2018/05/22 Javascript
微信小程序批量监听输入框对按钮样式进行控制的实现代码
2019/10/12 Javascript
JS面向对象编程基础篇(一) 对象和构造函数实例详解
2020/03/03 Javascript
js回调函数原理与用法案例分析
2020/03/04 Javascript
vue 二维码长按保存和复制内容操作
2020/09/22 Javascript
vue+springboot+element+vue-resource实现文件上传教程
2020/10/21 Javascript
微信小程序 接入腾讯地图的两种写法
2021/01/12 Javascript
Python通过Pygame绘制移动的矩形实例代码
2018/01/03 Python
解决python3中的requests解析中文页面出现乱码问题
2019/04/19 Python
基于keras输出中间层结果的2种实现方式
2020/01/24 Python
在pycharm中debug 实时查看数据操作(交互式)
2020/06/09 Python
美国领先的奢侈美容零售商:Bluemercury
2017/07/26 全球购物
泰国综合购物网站:Lazada泰国
2018/04/09 全球购物
美国在线奢侈品寄售商店:Luxury Garage Sale
2018/08/19 全球购物
德国珠宝和配件商店:Styleserver
2021/02/23 全球购物
会计与出纳自荐书范文
2014/03/16 职场文书
《孙权劝学》教学反思
2014/04/23 职场文书
文明单位创建材料
2014/12/24 职场文书
银行招聘自荐信
2015/03/06 职场文书
2015年学校办公室工作总结
2015/05/26 职场文书