class_docstr: NGCF is a model that incorporate GNN for recommendation.
  We implement the model following the original author with a pairwise training mode.
class_docstr_tok: ["NGCF","is","a","model","that","incorporate","GNN","for","recommendation",".","We","implement","the","model","following","the","original","author","with","a","pairwise","training","mode","."]
docstr: Construct the identity matrix with the size of  n_items+n_users.
  
  Returns:
      Sparse tensor of the identity matrix. Shape of (n_items+n_users, n_items+n_users)
docstr_tok: ["Construct","the","identity","matrix","with","the","size","of","n_items+n_users",".","Returns",":","Sparse","tensor","of","the","identity","matrix",".","Shape","of","(","n_items+n_users",",","n_items+n_users",")"]
code: def get_eye_mat(self):
      r"""Construct the identity matrix with the size of  n_items+n_users.
  
      Returns:
          Sparse tensor of the identity matrix. Shape of (n_items+n_users, n_items+n_users)
      """
      num = (
          self.n_items + self.n_users
      )  # number of column of the square matrix
      i = torch.LongTensor([range(0, num), range(0, num)])
      val = torch.FloatTensor([1] * num)  # identity matrix
      return torch.sparse.FloatTensor(i, val)
  
file_path: RecBole/recbole/model/general_recommender/ngcf.py
imports: import numpy
  import scipy.sparse
  import torch
  import torch.nn
  import torch.nn.functional
  from recbole.model.abstract_recommender import GeneralRecommender
  from recbole.model.init import xavier_normal_initialization
  from recbole.model.layers import BiGNNLayer, SparseDropout
  from recbole.model.loss import BPRLoss, EmbLoss
  from recbole.utils import InputType
label_desc: Use image node_id 3 for calling the NGCF obj's underlying member method code with example usage: obj.get_eye_mat() and returns: torch