code: def __init__(self, in_feats, out_feats, radius):
      super().__init__()
      self.out_feats = out_feats
      self.radius = radius
  
      new_linear = lambda: nn.Linear(in_feats, out_feats)
      new_linear_list = lambda: nn.ModuleList(
          [new_linear() for i in range(radius)]
      )
  
      self.theta_x, self.theta_deg, self.theta_y = (
          new_linear(),
          new_linear(),
          new_linear(),
      )
      self.theta_list = new_linear_list()
  
      self.gamma_y, self.gamma_deg, self.gamma_x = (
          new_linear(),
          new_linear(),
          new_linear(),
      )
      self.gamma_list = new_linear_list()
  
      self.bn_x = nn.BatchNorm1d(out_feats)
      self.bn_y = nn.BatchNorm1d(out_feats)
  
file_path: dgl/examples/pytorch/line_graph/gnn.py
imports: import copy
  import itertools
  import dgl
  import dgl.function
  import networkx
  import numpy
  import torch
  import torch.nn
  import torch.nn.functional
label_desc: Use image node_id 1 to create a new GNNModule object from inherited base classes: nn with example: obj = GNNModule(in_feats, out_feats, radius)