code: def __init__(
      self,
      num_features: int = ...,
      num_classes: int = ...,
      device: _typing.Union[str, torch.device] = ...,
      **kwargs,
  ) -> None:
      super().__init__(num_features, num_classes, device, **kwargs)
      self.hyper_parameter_space = [
          {
              "parameterName": "add_self_loops",
              "type": "CATEGORICAL",
              "feasiblePoints": [1],
          },
          {
              "parameterName": "normalize",
              "type": "CATEGORICAL",
              "feasiblePoints": [1],
          },
          {
              "parameterName": "num_layers",
              "type": "DISCRETE",
              "feasiblePoints": "2,3,4",
          },
          {
              "parameterName": "hidden",
              "type": "NUMERICAL_LIST",
              "numericalType": "INTEGER",
              "length": 3,
              "minValue": [8, 8, 8],
              "maxValue": [128, 128, 128],
              "scalingType": "LOG",
              "cutPara": ("num_layers",),
              "cutFunc": lambda x: x[0] - 1,
          },
          {
              "parameterName": "dropout",
              "type": "DOUBLE",
              "maxValue": 0.8,
              "minValue": 0.2,
              "scalingType": "LINEAR",
          },
          {
              "parameterName": "act",
              "type": "CATEGORICAL",
              "feasiblePoints": ["leaky_relu", "relu", "elu", "tanh"],
          },
      ]
  
      self.hyper_parameters = {
          "num_layers": 3,
          "hidden": [128, 64],
          "dropout": 0,
          "act": "relu",
      }
  
imports: import numpy
  from copy import deepcopy
  from numba import njit
  import torch.nn
  import torch.nn.functional
  import math
  import torch
  import torch.optim
  import typing
  from torch_geometric.data import Data
  from sklearn.metrics.pairwise import euclidean_distances, cosine_similarity
  from scipy.sparse import lil_matrix
  from sklearn.preprocessing import normalize
  import scipy.sparse
  import autogl.data
  from ..None import register_model
  from .None import utils
  from ..gcn import GCN
  from .nn import GCNConv
  from ..base import BaseAutoModel
  from .....utils import get_logger
  from .utils import accuracy
label_desc: Use image node_id 1 to create a new AutoGNNGuard object from inherited base classes: BaseAutoModel with example: obj = AutoGNNGuard(num_features, num_classes, device)