class_docstr: EEGGraph Convolution Net
  Parameters
  ----------
  num_feats: the number of features per node. In our case, it is 6.
code: def __init__(self, num_feats):
      super(EEGGraphConvNet, self).__init__()
  
      self.conv1 = GraphConv(num_feats, 16)
      self.conv2 = GraphConv(16, 32)
      self.conv3 = GraphConv(32, 64)
      self.conv4 = GraphConv(64, 50)
      self.conv4_bn = BatchNorm1d(
          50,
          eps=1e-05,
          momentum=0.1,
          affine=True,
          track_running_stats=True,
      )
  
      self.fc_block1 = nn.Linear(50, 30)
      self.fc_block2 = nn.Linear(30, 10)
      self.fc_block3 = nn.Linear(10, 2)
  
      # Xavier initializations
      self.fc_block1.apply(
          lambda x: nn.init.xavier_normal_(x.weight, gain=1)
      )
      self.fc_block2.apply(
          lambda x: nn.init.xavier_normal_(x.weight, gain=1)
      )
      self.fc_block3.apply(
          lambda x: nn.init.xavier_normal_(x.weight, gain=1)
      )
  
      self.sumpool = SumPooling()
  
file_path: dgl/examples/pytorch/eeg-gcnn/deep_EEGGraphConvNet.py
imports: import torch.nn
  import torch.nn.functional
  from dgl.nn import GraphConv, SumPooling
  from torch.nn import BatchNorm1d
label_desc: Use image node_id 1 to create a new EEGGraphConvNet object from inherited base classes: nn with example: obj = EEGGraphConvNet(num_feats)