code: def __init__(
      self,
      in_dim,
      hid_dim,
      out_dim,
      num_layers=2,
      p=[0, 1, 2],
      input_dropout=0.0,
      layer_dropout=0.0,
      activation=None,
      batchnorm=False,
  ):
      super(MixHop, self).__init__()
      self.in_dim = in_dim
      self.hid_dim = hid_dim
      self.out_dim = out_dim
      self.num_layers = num_layers
      self.p = p
      self.input_dropout = input_dropout
      self.layer_dropout = layer_dropout
      self.activation = activation
      self.batchnorm = batchnorm
  
      self.layers = nn.ModuleList()
      self.dropout = nn.Dropout(self.input_dropout)
  
      # Input layer
      self.layers.append(
          MixHopConv(
              self.in_dim,
              self.hid_dim,
              p=self.p,
              dropout=self.input_dropout,
              activation=self.activation,
              batchnorm=self.batchnorm,
          )
      )
  
      # Hidden layers with n - 1 MixHopConv layers
      for i in range(self.num_layers - 2):
          self.layers.append(
              MixHopConv(
                  self.hid_dim * len(args.p),
                  self.hid_dim,
                  p=self.p,
                  dropout=self.layer_dropout,
                  activation=self.activation,
                  batchnorm=self.batchnorm,
              )
          )
  
      self.fc_layers = nn.Linear(
          self.hid_dim * len(args.p), self.out_dim, bias=False
      )
  
file_path: dgl/examples/pytorch/mixhop/main.py
imports: import argparse
  import copy
  import random
  import dgl
  import dgl.function
  import numpy
  import torch
  import torch.nn
  import torch.optim
  from dgl.data import CiteseerGraphDataset, CoraGraphDataset, PubmedGraphDataset
  from tqdm import trange
label_desc: Use image node_id 1 to create a new MixHop object from inherited base classes: nn with example: obj = MixHop(in_dim, hid_dim, out_dim, num_layers, p, input_dropout, layer_dropout, activation, batchnorm)