5
from joblib import Parallel, delayed

def func(v):
    temp.append(v)
    return

temp = []
Parallel(n_jobs=4)(delayed(func)(v) for v in range(10))
print temp

共有メモリを変数にしたい。しかし、temp の値は空です []。どうすればいいですか?

他の方法として、pickle.dump と load を試しました。しかし、ロックの問題があります。アドバイスをください!

4

2 に答える 2

9
from joblib import Parallel, delayed

def func(v):
    return v

temp = Parallel(n_jobs=4)(delayed(func)(v) for v in range(10))
print temp

delayedfuncによって返された出力をリストに収集し、完了時にそれを返します。

于 2016-01-20T08:22:56.060 に答える
2

multiprocessing.Manager.listたとえば、次のように使用する必要があります。

from joblib import Parallel, delayed
from multiprocessing import Manager

manager = Manager()
temp = manager.list()

def func(v, temp):
    temp.append(v)
    return

_ = Parallel(n_jobs=4)(delayed(func)(v, temp) for v in range(10))

temp[:]:

[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
于 2019-12-20T20:51:50.933 に答える