IF YOU WOULD LIKE TO GET AN ACCOUNT, please write an email to s dot adaszewski at gmail dot com. User accounts are meant only to report issues and/or generate pull requests. This is a purpose-specific Git hosting for ADARED projects. Thank you for your understanding!
選択できるのは25トピックまでです。 トピックは、先頭が英数字で、英数字とダッシュ('-')を使用した35文字以内のものにしてください。

19 行
826B

  1. import numpy as np
  2. import scipy.sparse as sp
  3. def normalize_adjacency_matrix(self, adj):
  4. adj = sp.coo_matrix(adj)
  5. if adj.shape[0] == adj.shape[1]:
  6. adj_ = adj + sp.eye(adj.shape[0])
  7. rowsum = np.array(adj_.sum(1))
  8. degree_mat_inv_sqrt = sp.diags(np.power(rowsum, -0.5).flatten())
  9. adj_normalized = adj_.dot(degree_mat_inv_sqrt).transpose().dot(degree_mat_inv_sqrt).tocoo()
  10. else:
  11. rowsum = np.array(adj.sum(1))
  12. colsum = np.array(adj.sum(0))
  13. rowdegree_mat_inv = sp.diags(np.nan_to_num(np.power(rowsum, -0.5)).flatten())
  14. coldegree_mat_inv = sp.diags(np.nan_to_num(np.power(colsum, -0.5)).flatten())
  15. adj_normalized = rowdegree_mat_inv.dot(adj).dot(coldegree_mat_inv).tocoo()
  16. return preprocessing.sparse_to_tuple(adj_normalized)