code: def __init__(self, key, prev_labels, in_filters, out_filters):
      super().__init__(key)
      self.in_filters = in_filters
      self.out_filters = out_filters
      self.mutable = mutables.LayerChoice(
          [
              ConvBranch(
                  in_filters, out_filters, 3, 1, 1, separable=False
              ),
              ConvBranch(
                  in_filters, out_filters, 3, 1, 1, separable=True
              ),
              ConvBranch(
                  in_filters, out_filters, 5, 1, 2, separable=False
              ),
              ConvBranch(
                  in_filters, out_filters, 5, 1, 2, separable=True
              ),
              PoolBranch("avg", in_filters, out_filters, 3, 1, 1),
              PoolBranch("max", in_filters, out_filters, 3, 1, 1),
          ]
      )
      if len(prev_labels) > 0:
          self.skipconnect = mutables.InputChoice(
              choose_from=prev_labels, n_chosen=None
          )
      else:
          self.skipconnect = None
      self.batch_norm = nn.BatchNorm2d(out_filters, affine=False)
  
file_path: nni/examples/nas/legacy/oneshot/enas/macro.py
imports: import torch.nn
  from nni.nas.pytorch import mutables
  from ops import FactorizedReduce, ConvBranch, PoolBranch
label_desc: Use image node_id 1 to create a new ENASLayer object from inherited base classes: mutables with example: obj = ENASLayer(key, prev_labels, in_filters, out_filters)