为什么pool.map(func,argument)返回ValueError :需要超过1个值才能解压缩



我正在尝试在CPU上的多个内核上运行python函数,但是我不断收到此错误,显示"需要超过1个值才能解压缩"。

我正在传递两个参数来映射函数,第一个参数是我想在多个内核上运行的函数,第二个参数是我想作为参数传递给我的函数的元组列表。

像这样的东西

def func(list_obj):
   temp = list_obj[0]
   img = list_obj[1]

arg = list()
arg.append((img1,img2))
pool = multiprocessing.Pool(processes = 2)
results = pool.map(func,arg)
print (results)

有人可以帮我为什么我会收到此错误以及有什么可能的方法可以解决此错误

我无法提供帮助,但这是一个最小的代码,不会产生错误并且似乎可以正确运行map(但我不知道结果应该如何返回(:

import multiprocessing
results = []
def func(list_obj):
    print(list_obj)
    temp = list_obj[0]
    img = list_obj[1]
    results.append( {"temp":temp, "img":img} )
    return True

if __name__=="__main__":
    iterable = list()
    iterable.append(("some",123))
    iterable.append(("data",456))
    iterable.append(("to",789))
    iterable.append(("play",789))
    iterable.append(("with","0ab"))
    print(iterable)

    pool = multiprocessing.Pool(processes = 2)
    pool.map(func, iterable)
    print(results)

也许你会在某个地方构建一些小东西,直到它坏掉 - 然后你有代码可以分享并获得帮助。

相关内容

  • 没有找到相关文章

最新更新