code: def __init__(
      self,
      hidden_dim: _typ.Optional[int] = 64,
      layer_number: _typ.Optional[int] = 2,
      dropout: _typ.Optional[float] = 0.6,
      input_dim: _typ.Optional[int] = None,
      output_dim: _typ.Optional[int] = None,
      ops: _typ.Tuple = None,
      search_act_con=False,
  ):
      super().__init__()
      self.layer_number = layer_number
      self.hidden_dim = hidden_dim
      self.input_dim = input_dim
      self.output_dim = output_dim
      self.ops = ops
      self.dropout = dropout
      self.search_act_con = search_act_con
  
imports: import torch
  import typing
  import torch.nn
  import torch.nn.functional
  from .None import register_nas_space
  from .base import BaseSpace, map_nn
  from ...model import BaseAutoModel
  from .operation import act_map
  from ..utils import count_parameters, measure_latency
  from ..backend import *
  from operator import *
  from .operation import *
label_desc: Use image node_id 1 to create a new GraphNasMacroNodeClassificationSpace object from inherited base classes: BaseSpace with example: obj = GraphNasMacroNodeClassificationSpace(hidden_dim, layer_number, dropout, input_dim, output_dim, ops, search_act_con)