class_docstr: Data processing class for GCN models which use implicit feedback.
  
  Initialize train and test set, create normalized adjacency matrix and sample data for training epochs.
docstr: Create normalized adjacency matrix.
  
  Returns:
      scipy.sparse.csr_matrix: Normalized adjacency matrix.
docstr_tok: ["Create","normalized","adjacency","matrix",".","Returns",":","scipy.sparse.csr_matrix",":","Normalized","adjacency","matrix","."]
code: def create_norm_adj_mat(self):
      """Create normalized adjacency matrix.
  
      Returns:
          scipy.sparse.csr_matrix: Normalized adjacency matrix.
  
      """
      adj_mat = sp.dok_matrix(
          (self.n_users + self.n_items, self.n_users + self.n_items),
          dtype=np.float32,
      )
      adj_mat = adj_mat.tolil()
      R = self.R.tolil()
  
      adj_mat[: self.n_users, self.n_users :] = R
      adj_mat[self.n_users :, : self.n_users] = R.T
      adj_mat = adj_mat.todok()
      print("Already create adjacency matrix.")
  
      rowsum = np.array(adj_mat.sum(1))
      d_inv = np.power(rowsum + 1e-9, -0.5).flatten()
      d_inv[np.isinf(d_inv)] = 0.0
      d_mat_inv = sp.diags(d_inv)
      norm_adj_mat = d_mat_inv.dot(adj_mat)
      norm_adj_mat = norm_adj_mat.dot(d_mat_inv)
      print("Already normalize adjacency matrix.")
  
      return norm_adj_mat.tocsr()
  
file_path: recommenders/recommenders/models/deeprec/DataModel/ImplicitCF.py
imports: import random
  import numpy
  import pandas
  import scipy.sparse
  from recommenders.utils.constants import DEFAULT_ITEM_COL, DEFAULT_USER_COL, DEFAULT_RATING_COL, DEFAULT_PREDICTION_COL
label_desc: Use image node_id 6 for calling the ImplicitCF obj's underlying member method code with example usage: obj.create_norm_adj_mat() and returns: norm_adj_mat