class_docstr: The implementations of the GraphLayer part and the Attentional Edge Weights part are adapted from https://github.com/xue-pai/FuxiCTR.
class_docstr_tok: ["The","implementations","of","the","GraphLayer","part","and","the","Attentional","Edge","Weights","part","are","adapted","from","https",":","\/\/github.com\/xue-pai\/FuxiCTR","."]
code: def forward(self, g, h):
      h_out = torch.matmul(self.W_out, h.unsqueeze(-1)).squeeze(-1)
      aggr = torch.bmm(g, h_out)
      a = (
          torch.matmul(self.W_in, aggr.unsqueeze(-1)).squeeze(-1)
          + self.bias_p
      )
      return a
  
file_path: RecBole/recbole/model/context_aware_recommender/fignn.py
imports: import torch
  import torch.nn
  import torch.nn.functional
  from torch.nn.init import xavier_uniform_, xavier_normal_, constant_
  from itertools import product
  from recbole.utils import InputType
  from recbole.model.abstract_recommender import ContextRecommender
label_desc: Use image node_id 2 for calling the GraphLayer obj's underlying member method code with example usage: obj.forward(g, h) and returns: a