def get_dissimilarity_matrix(U,V,X,n,error_list,beta,alpha_w,alpha_e_avg_t,alpha_n0,maxconn):
row_size = X.shape[0]
col_size = X.shape[1]
channel_count = X.shape[2]
alpha = get_alpha(n,error_list,alpha_w,alpha_e_avg_t,alpha_n0)
cluster_number = V.shape[0]
D = np.zeros((row_size,col_size,cluster_number))
index_arr = np.array([[k,l] for k in xrange(row_size) for l in xrange(col_size)],dtype='int32')
U_new = U.reshape(row_size*col_size,cluster_number, order='F')
data_inputs = [0 for i in xrange(0,row_size*col_size)]
for i in xrange(0, row_size*col_size):
x = index_arr[i][0]
y = index_arr[i][1]
data_inputs[i] = [U_new,V,X[x][y],x,y,alpha,beta[x*row_size+y,:]]
pool = Pool(maxconn)
outputs = pool.map(compute_cluster_distances_pool, data_inputs)
pool.close()
pool.join()
for i in xrange(0,row_size*col_size):
x = index_arr[i][0]
y = index_arr[i][1]
D[x][y] = outputs[i]
return D
评论列表
文章目录