首页 > 解决方案 > 在python中的starmap中的进程之间共享矩阵

问题描述

我有parallel_l21我想要并行化的功能。问题是它似乎W_hat没有在不同的进程之间共享。如何W_hat在进程之间进行共享?

def parallel_l21(labels, X, W_hat, lam, g):
    print(g)
    g_indxs = np.where(schaefer_labels == g)[0]
    tmp = rfs(X[g_indxs, 1:].T, X[:, :-1].T, gamma=lam, verbose=False).T
    tmp[abs(tmp) <= 1e-6] = 0
    W_hat[:, g_indxs] = tmp

 with Pool(processes=12) as pool:
     print(pool)
     pool.starmap(parallel_l21, zip(repeat(labels), repeat(X), W_hat, repeat(lam), np.unique(labels)))

标签: python-3.xmultiprocessing

解决方案


推荐阅读