def update_col_param(self, phi_csc, mu0, r, u, c_prev, v_prev, phi_c, phi_v, num_process):
ncol = self.y_csc.shape[1]
if num_process == 1:
c, v = self.update_col_param_blockwise(self.y_csc, phi_csc, mu0, r, u, c_prev, v_prev, phi_c, phi_v)
else:
# Update 'c' and 'v' block-wise in parallel.
n_block = num_process
block_ind = np.linspace(0, ncol, 1 + n_block, dtype=int)
cv = joblib.Parallel(n_jobs=num_process)(
joblib.delayed(self.update_col_param_blockwise)(
self.y_csc[:, block_ind[m]:block_ind[m + 1]],
phi_csc[:, block_ind[m]:block_ind[m + 1]],
mu0, r, u,
c_prev[block_ind[m]:block_ind[m + 1]],
v_prev[block_ind[m]:block_ind[m + 1]],
phi_c[block_ind[m]:block_ind[m + 1]],
phi_v)
for m in range(n_block))
c = np.concatenate([cv_j[0] for cv_j in cv])
v = np.vstack([cv_j[1] for cv_j in cv])
return c, v
matrix_factorization.py 文件源码
python
阅读 36
收藏 0
点赞 0
评论 0
评论列表
文章目录