问题描述
这里我有一个 2 numpy 数组,以及一个将这些数组作为输入的函数,然后进行一些 numpy 计算并返回结果。它按原样工作,但速度很慢,我认为我们可以使用多处理使其更快。
无论如何,这是我的代码:
A = #4 dimensions big numpy array
B = #1 dimension numpy array
def function(A,B):
P = np.einsum("ijkl,ij->kl",A,B)
return P.astype(np.uint8)
result = function(A,B)
我对 Multiprocessing 的东西仍然很陌生,但认为我们能够将数组 A
和 B
作为共享内存(也许使用 multiprocessing.Array()
??) ,然后进行多个过程来计算 function(A,B)
。但我仍然不太明白如何将所有这些都放入代码中。
编辑:
好的,所以上面的方法似乎不起作用,但让我们尝试另一种情况,但是现在,假设数组 A
的长度为 120,现在我只想使用 3/4数组 A
的部分从索引号 0 到 89 并在进程号 1
B
然后,我还想使用数组 A
的 3/4 部分,但从索引号 30 到 119 并在进程中使用数组 B
的所有部分No.2,这有帮助吗?当然,我可以使 A
数组更大,以便用更多的过程计算它的一部分,但问题是,这个概念是否可行?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)