code: def forward(self, users, items, gmf_users=None):
      # gmf_users is there to take advantage of broadcasting
      h_gmf = (
          self.gmf.h(users, items)
          if gmf_users is None
          else self.gmf.h(gmf_users, items)
      )
      h_mlp = self.mlp.h(users, items)
      h = torch.cat([h_gmf, h_mlp], dim=-1)
      output = self.Sigmoid(self.logit(h)).view(-1)
      return output
  
imports: import torch
  import torch.nn
label_desc: Use image node_id 3 for calling the NeuMF obj's underlying member method code with example usage: obj.forward(users, items, gmf_users) and returns: output