Ich versuche, eine Python-Funktion auf mehreren Kernen auf meiner CPU auszuführen, aber ich bekomme immer den Fehler, der sagt "brauche mehr als 1 Wert zum Auspacken '.Warum gibt pool.map (func, argument) ValueError zurück: benötigt mehr als 1 value zum Entpacken
Ich übergebe zwei Argumente zu Map-Funktion Das erste Argument ist meine Funktion, die ich auf mehreren Kernen ausführen soll und das zweite Argument ist eine Liste von Tupel, die ich als ein Argument an meine Funktion übergeben möchte.
so etwas wie diese
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)
Kann jemand bitte helfen Sie mir, warum soll ich diesen Fehler und welche Art und Weise ist es, diesen Fehler zu lösen
Wenn Sie 'arg.append (img1)' dann 'arg.append (img2)' in separaten Zeilen tun das funktioniert? Ich denke, Ihr Argument könnte "((img1, img2))" im Gegensatz zu "(img1, img2)" lauten, was erwartet Ihre Funktion? –
Die Argumente, die in der Map-Funktion übergeben werden müssen, müssen iterierbar sein. Wenn Sie genau nach jedem Prozess suchen, wird das Argument in weitere Platzhalter wie list_obj [0], list_obj [1] usw. aufgeteilt eines Tupels wie (img1, img2). –
In welcher Zeile wird der Fehler angezeigt? –