class_docstr: AutoTopkpool. The model used in this automodel is from https://arxiv.org/abs/1905.05178, https://arxiv.org/abs/1905.02850
  Parameters
  ----------
  num_features: `int`.
      The dimension of features.
  num_classes: `int`.
      The number of classes.
  device: `torch.device` or `str`
      The device where model will be running on.
  init: `bool`.
      If True(False), the model will (not) be initialized.
class_docstr_tok: ["AutoTopkpool",".","The","model","used","in","this","automodel","is","from","https",":","\/\/arxiv.org\/abs\/1905.05178",",","https",":","\/\/arxiv.org\/abs\/1905.02850","Parameters","--","--","--","--","--","num_features",":","`","int","`",".","The","dimension","of","features",".","num_classes",":","`","int","`",".","The","number","of","classes",".","device",":","`","torch.device","`","or","`","str","`","The","device","where","model","will","be","running","on",".","init",":","`","bool","`",".","If","True","(","False",")",",","the","model","will","(","not",")","be","initialized","."]
code: def __init__(
      self,
      num_features=None,
      num_classes=None,
      device=None,
      num_graph_features=0,
      **args,
  ):
      super().__init__(
          num_features,
          num_classes,
          device,
          num_graph_features=num_graph_features,
      )
      self.num_graph_features = num_graph_features
  
      self.hyper_parameter_space = [
          {
              "parameterName": "num_layers",
              "type": "DISCRETE",
              "feasiblePoints": "4,5,6",
          },
          {
              "parameterName": "hidden",
              "type": "NUMERICAL_LIST",
              "numericalType": "INTEGER",
              "length": 5,
              "minValue": [8, 8, 8, 8, 8],
              "maxValue": [64, 64, 64, 64, 64],
              "scalingType": "LOG",
              "cutPara": ("num_layers",),
              "cutFunc": lambda x: x[0] - 1,
          },
          {
              "parameterName": "dropout",
              "type": "DOUBLE",
              "maxValue": 0.9,
              "minValue": 0.1,
              "scalingType": "LINEAR",
          },
          {
              "parameterName": "num_layers",
              "type": "INTEGER",
              "minValue": 7,
              "maxValue": 2,
              "scalingType": "LINEAR",
          },
          {
              "parameterName": "mlp_layers",
              "type": "DISCRETE",
              "feasiblePoints": "2,3,4",
          },
      ]
  
      self.hyper_parameters = {
          "num_layers": 5,
          "hidden": [64, 64, 64, 64],
          "dropout": 0.5,
          "act": "relu",
          "mlp_layers": 2,
      }
  
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 1 to create a new AutoTopkpool object from inherited base classes: BaseAutoModel with example: obj = AutoTopkpool(num_features, num_classes, device, num_graph_features)