处理图像列表时Python多处理内存错误

2024-10-01 13:43:34 发布

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

我在Python多处理方面遇到了麻烦。我正在处理的是(1512,2016)大小的大图像。基本上,我要做的是切片图像和做一些操作。因为我正在处理的图像数据集太大了。我想创建图像块并将其分发给工作进程,而不是进行主计算。我得到错误的一点是,在我阅读并切片所有图像并将它们放入队列之后。当处理这些图像时,当我调用工作进程开始运行时,我得到了这个错误

assignToWorkers()
File "multi.py", line 168, in assignToWorkers
[worker.start() for worker in workers]
File "/usr/lib/python2.7/multiprocessing/process.py", line 130, in   start
self._popen = Popen(self)
File "/usr/lib/python2.7/multiprocessing/forking.py", line 121, in __init__
self.pid = os.fork()
OSError: [Errno 12] Cannot allocate memory

我开始怀疑我使用python多处理的方式。我需要两个过程的工作,我基本上是这样做的

^{pr2}$

我正在尝试处理500MB的图像数据集,在虚拟机上有2个内核和6gb的ram


Tags: 数据inpy图像self进程libusr