【发布时间】:2015-06-18 03:36:21
【问题描述】:
我正在尝试使用 python 中的并行处理来加速我的一段代码,但我无法让它正常工作,甚至无法找到与我相关的示例。
代码使用 Delaunay 三角剖分生成图像的低多边形版本,而让我慢下来的部分是找到每个三角形的平均值。
通过矢量化我的代码,我已经能够很好地提高速度,但希望通过并行化获得更多:
我遇到问题的代码是一个非常简单的 for 循环:
for tri in tris:
lopo[tridex==tri,:] = np.mean(hipo[tridex==tri,:],axis=0)
引用的变量如下。
tris - 三角形所有索引的唯一 Python 列表
lopo - 图像的最终低多边形版本的 Numpy 数组
hipo - 原始图像的 Numpy 数组
tridex - 一个与图像大小相同的 Numpy 数组。每个元素代表一个像素并存储该像素所在的三角形
我似乎找不到一个使用多个 numpy 数组作为输入的好例子,其中一个是共享的。
我尝试过多重处理(上面的 sn-p 包含在一个名为 colorImage 的函数中):
p = Process(target=colorImage, args=(hipo,lopo,tridex,ppTris))
p.start()
p.join()
但是我立即得到一个损坏的管道错误。
【问题讨论】:
标签: python numpy parallel-processing