class_docstr: Relation GCN layer. 
class_docstr_tok: ["Relation","GCN","layer","."]
docstr: :param in/out_features: scalar of channels for node embedding
  :param edge_dim: dim of edge type, virtual type not included
docstr_tok: [":","param","in\/out_features",":","scalar","of","channels","for","node","embedding",":","param","edge_dim",":","dim","of","edge","type",",","virtual","type","not","included"]
code: def __init__(
      self,
      in_features,
      out_features,
      edge_dim=3,
      aggregate="sum",
      dropout=0.0,
      use_relu=True,
      bias=False,
  ):
      """
      :param in/out_features: scalar of channels for node embedding
      :param edge_dim: dim of edge type, virtual type not included
      """
      super(RelationGraphConvolution, self).__init__()
      self.in_features = in_features
      self.out_features = out_features
      self.edge_dim = edge_dim
      self.dropout = dropout
      self.aggregate = aggregate
      if use_relu:
          self.act = nn.ReLU()
      else:
          self.act = None
  
      self.weight = nn.Parameter(
          torch.FloatTensor(
              self.edge_dim, self.in_features, self.out_features
          )
      )
      if bias:
          self.bias = nn.Parameter(
              torch.FloatTensor(self.edge_dim, 1, self.out_features)
          )
      else:
          self.register_parameter("bias", None)
      self.reset_parameters()
  
file_path: DIG/dig/ggraph/method/GraphDF/model/rgcn.py
imports: import torch
  import torch.nn
  import torch.nn.functional
label_desc: Use image node_id 1 to create a new RelationGraphConvolution object from inherited base classes: nn with example: obj = RelationGraphConvolution(in_features, out_features, edge_dim, aggregate, dropout, use_relu, bias)