Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/277.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
处理图像列表时Python多处理内存错误_Python_Multiprocessing_Python Multiprocessing - Fatal编程技术网

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

处理图像列表时Python多处理内存错误,python,multiprocessing,python-multiprocessing,Python,Multiprocessing,Python Multiprocessing,我在Python多处理方面遇到了麻烦。我正在处理大约(151220016)大小的大型图像。基本上我要做的是对图像进行切片并对其进行一些操作。因为我正在处理的图像数据集太大。我想创建图像片段并将其分发给工作进程,而不是进行主要计算。我得到错误的一点是,在我读取和切片所有图像并将它们放入队列之后。当需要处理这些图像时,当我调用辅助进程开始运行时,我得到了这个错误 assignToWorkers() File "multi.py", line 168, in assignToWorkers [work

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

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多处理的方式。我需要两个过程的作品,我基本上是这样做的

global storage # global queue 
class processclass(multiprocessing.Process):
def __init__(self, datasubset, result_queue):
    multiprocessing.Process.__init__(self)
def run():
    self.datasubset
    # some logic here 



workers = [ processclass(storage.get(), result_queue) for datasubset in range(2) ]   # creating two process from process class
[worker.start() for worker in workers]
[ worker.join() for worker in workers]
我正在尝试处理500 MB的图像数据集,虚拟机上有2个内核和6gb ram