code: def __init__(self, args, dataset):
      super(NGCF, 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.ngcf = NGCF_Layer(
          self.latent_dim, self.latent_dim, self.n_layers
      )
      edges = paddle.to_tensor(self.dataset.trainEdge, dtype="int64")
      self.Graph = pgl.Graph(num_nodes=num_nodes, edges=edges)
      self.f = nn.Sigmoid()
      self.__init_weight()
  
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 NGCF object from inherited base classes: nn with example: obj = NGCF(args, dataset)