class_docstr: AutoSAGE. The model used in this automodel is GraphSAGE, i.e., the GraphSAGE from the `"Inductive Representation Learning on
  Large Graphs" <https://arxiv.org/abs/1706.02216>`_ paper. The layer is
  
  .. math::
  
      \mathbf{x}^{\prime}_i = \mathbf{W}_1 \mathbf{x}_i + \mathbf{W_2} \cdot
      \mathrm{mean}_{j \in \mathcal{N(i)}} \mathbf{x}_j
  
  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: ["AutoSAGE",".","The","model","used","in","this","automodel","is","GraphSAGE",",","i.e.",",","the","GraphSAGE","from","the","`","``","Inductive","Representation","Learning","on","Large","Graphs","''","<","https",":","\/\/arxiv.org\/abs\/1706.02216",">","`","_","paper",".","The","layer","is","..","math",":",":","\\mathbf","{","x","}","^","{","\\prime","}","_i","=","\\mathbf","{","W","}","_1","\\mathbf","{","x","}","_i","+","\\mathbf","{","W_2","}","\\cdot","\\mathrm","{","mean","}","_","{","j","\\in","\\mathcal","{","N","(","i",")","}","}","\\mathbf","{","x","}","_j","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, **args
  ):
      super(AutoSAGE, self).__init__(
          num_features, num_classes, device, **args
      )
  
      self.hyper_parameter_space = [
          {
              "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"],
          },
          {
              "parameterName": "agg",
              "type": "CATEGORICAL",
              "feasiblePoints": ["mean", "add", "max"],
          },
      ]
  
      self.hyper_parameters = {
          "num_layers": 3,
          "hidden": [64, 32],
          "dropout": 0.5,
          "act": "relu",
          "agg": "mean",
      }
  
file_path: AutoGL/autogl/module/model/dgl/graphsage.py
imports: import torch
  import typing
  import torch.nn.functional
  from dgl.nn.pytorch.conv import SAGEConv
  import torch.nn.functional
  from .None import register_model
  from .base import BaseAutoModel, activate_func
  from ....utils import get_logger
label_desc: Use image node_id 1 to create a new AutoSAGE object from inherited base classes: BaseAutoModel with example: obj = AutoSAGE(num_features, num_classes, device)