class_docstr: Topkpool model
class_docstr_tok: ["Topkpool","model"]
code: def forward(self, data):
      if "feat" in data.ndata:
          h = data.ndata.pop("feat")
      else:
          h = data.ndata.pop("attr")
      # list of hidden representation at each layer (including input)
      hidden_rep = [h]
  
      for i in range(self.num_layers - 1):
          h = self.gcnlayers[i](data, h)
          h = self.batch_norms[i](h)
          h = F.relu(h)
          hidden_rep.append(h)
  
      score_over_layer = 0
  
      # perform pooling over all nodes in each graph in every layer
      for i, h in enumerate(hidden_rep):
          pooled_h = self.pool(data, h)
          # import pdb; pdb.set_trace()
          score_over_layer += self.drop(
              self.linears_prediction[i](pooled_h)
          )
  
      return score_over_layer
  
imports: import torch
  import torch.nn
  import torch.nn.functional
  from dgl.nn.pytorch.conv import GraphConv
  from dgl.nn.pytorch.glob import SortPooling
  from .None import register_model
  from .base import BaseAutoModel
  from ....utils import get_logger
label_desc: Use image node_id 2 for calling the Topkpool obj's underlying member method code with example usage: obj.forward(data) and returns: score_over_layer