多维numpy数组多处理共享内存

2024-03-29 12:01:07 发布

您现在位置:Python中文网/ 问答频道 /正文

我需要并行处理一个非常大的numpy数组(55x117x256x256)。尝试用通常的多处理方法传递它会产生一个AssertionError,我理解这是因为数组太大,无法复制到每个进程中。因此,我想尝试使用共享内存进行多处理。(我对其他方法持开放态度,只要它们不太复杂)。在

我见过一些关于python多处理的共享内存方法的问题,例如

import numpy as np
import multiprocessing as mp

unsharedData = np.zeros((10,))
sharedData = mp.Array('d', unsharedData)

看起来效果不错。但是,我还没有看到一个使用多维数组来实现这一点的示例。在

我试过将多维数组粘贴到mp.Array中,这给了我TypeError: only size-1 arrays can be converted to Python scalars。在

^{pr2}$

我可以将数组展平,但如果可以避免的话,我宁愿不要。在

有什么诀窍让多处理数组来处理多维数据?在


Tags: 方法importnumpy进程asnpzerosmp