code: def forward(self, graph, u_feat, i_feat):
      h = paddle.concat([u_feat, i_feat])
      embs = [h]
      for i in range(self.n_layers):
          h = self.ngcfs[i](graph, h)
          norm_h = F.normalize(h, p=2, axis=1)
          embs.append(norm_h)
      embs = paddle.concat(embs, axis=1)
      users, items = paddle.split(
          embs, [u_feat.shape[0], i_feat.shape[0]]
      )
      return users, items
  
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 2 for calling the NGCF_Layer obj's underlying member method code with example usage: obj.forward(graph, u_feat, i_feat) and returns: users,  items