code: def __init__(self, args, dataset):
      super(LightGCN, self).__init__()
      self.args = args
      self.dataset = dataset
      self.num_users = self.dataset.n_users
      self.num_items = self.dataset.m_items
      num_nodes = self.dataset.n_users + self.dataset.m_items
      self.latent_dim = self.args.recdim
      self.n_layers = self.args.n_layers
      self.lightgcn = LightGCN_Layer(self.n_layers)
      #         self.lightgcn = LightGCNonv(self.n_layers)
      self.embedding_user = nn.Embedding(
          num_embeddings=self.num_users, embedding_dim=self.latent_dim
      )
      self.embedding_item = nn.Embedding(
          num_embeddings=self.num_items, embedding_dim=self.latent_dim
      )
      emb_item_weight = np.random.normal(
          0, 0.1, self.embedding_item.weight.numpy().shape
      ).astype(np.float32)
      emb_user_weight = np.random.normal(
          0, 0.1, self.embedding_user.weight.numpy().shape
      ).astype(np.float32)
      self.embedding_item.weight.set_value(emb_item_weight)
      self.embedding_user.weight.set_value(emb_user_weight)
  
      self.f = nn.Sigmoid()
      edges = paddle.to_tensor(self.dataset.trainEdge, dtype="int64")
      self.Graph = pgl.Graph(num_nodes=num_nodes, edges=edges)
      self.lightgcn.train()
  
imports: import paddle
  import paddle.nn
  from dataloader import BasicDataset
  import numpy
  import paddle
  import paddle.nn
  import paddle.nn.functional
  import pgl
  from pgl.nn import functional
  from tqdm import tqdm
label_desc: Use image node_id 1 to create a new LightGCN object from inherited base classes: BasicModel with example: obj = LightGCN(args, dataset)