code: def __init__(
      self, num_layers=12, filters=24, num_classes=10, dropout_rate=0.0
  ):
      super().__init__()
      self.num_layers = num_layers
  
      self.stem = Sequential(
          [
              Conv2D(
                  filters, kernel_size=3, padding="same", use_bias=False
              ),
              BatchNormalization(),
          ]
      )
  
      labels = ["layer_{}".format(i) for i in range(num_layers)]
      self.enas_layers = []
      for i in range(num_layers):
          layer = ENASLayer(labels[i], labels[:i], filters)
          self.enas_layers.append(layer)
  
      pool_num = 2
      self.pool_distance = num_layers // (pool_num + 1)
      self.pool_layers = [
          FactorizedReduce(filters) for _ in range(pool_num)
      ]
  
      self.gap = GlobalAveragePooling2D()
      self.dropout = Dropout(dropout_rate)
      self.dense = Dense(num_classes)
  
file_path: nni/examples/nas/legacy/oneshot/enas-tf/macro.py
imports: import tensorflow
  from tensorflow.keras import Model, Sequential
  from tensorflow.keras.layers import AveragePooling2D, BatchNormalization, Conv2D, Dense, Dropout, GlobalAveragePooling2D, MaxPool2D, ReLU, SeparableConv2D
  from nni.nas.tensorflow.mutables import InputChoice, LayerChoice, MutableScope
label_desc: Use image node_id 1 to create a new GeneralNetwork object from inherited base classes: Model with example: obj = GeneralNetwork(num_layers, filters, num_classes, dropout_rate)