, Pool s. , , @ChongMa , Python, . , , .
:
a) Pool.close(), Pool , :
def batch_grad(x0, y, processes=4):
pool = Pool(processes)
g = pool.map(UnrollArgs(grad), [(x0, yi) for yi in y])
pool.close()
return np.sum([gi for gi in g], axis=0) / len(y)
b) Pool - Pool batch_grad :
def batch_grad(x0, y, pool=None):
if pool is None:
pool = Pool(4)
g = pool.map(UnrollArgs(grad), [(x0, yi) for yi in y])
return np.sum([gi for gi in g], axis=0) / len(y)
p = Pool(4)
batch_grad(your_x0, your_y, p)
, .