code: def __init__(
      self,
      in_channels,
      out_channels,
      num_edge_type,
      std,
      bound=True,
      add_self=False,
  ):
      super(GraphConv, self).__init__()
  
      self.add_self = add_self
      if self.add_self:
          self.linear_node = spectral_norm(
              nn.Linear(in_channels, out_channels), std=std, bound=bound
          )
      self.linear_edge = spectral_norm(
          nn.Linear(in_channels, out_channels * num_edge_type),
          std=std,
          bound=bound,
      )
      self.num_edge_type = num_edge_type
      self.in_ch = in_channels
      self.out_ch = out_channels
  
file_path: DIG/dig/ggraph/method/GraphEBM/energy_func.py
imports: import torch
  from torch import nn
  from torch.nn import functional
label_desc: Use image node_id 1 to create a new GraphConv object from inherited base classes: nn with example: obj = GraphConv(in_channels, out_channels, num_edge_type, std, bound, add_)