code: def __init__(self):
      super().__init__()
      self.conv1 = nn.Conv2d(1, 32, 3, 1)
      # LayerChoice is used to select a layer between Conv2d and DwConv.
      self.conv2 = nn.LayerChoice(
          [nn.Conv2d(32, 64, 3, 1), DepthwiseSeparableConv(32, 64)]
      )
      # ValueChoice is used to select a dropout rate.
      # ValueChoice can be used as parameter of modules wrapped in `nni.retiarii.nn.pytorch`
      # or customized modules wrapped with `@basic_unit`.
      self.dropout1 = nn.Dropout(nn.ValueChoice([0.25, 0.5, 0.75]))
      self.dropout2 = nn.Dropout(0.5)
      feature = nn.ValueChoice([64, 128, 256])
      # Same value choice can be used multiple times
      self.fc1 = nn.Linear(9216, feature)
      self.fc2 = nn.Linear(feature, 10)
  
imports: import os
  import random
  from pathlib import Path
  import nni
  import torch
  import torch.nn.functional
  import nni.retiarii.nn.pytorch
  import nni.retiarii.strategy
  from nni.retiarii import model_wrapper
  from nni.retiarii.evaluator import FunctionalEvaluator
  from nni.retiarii.experiment.pytorch import RetiariiExeConfig, RetiariiExperiment, debug_mutated_model
  from torch.utils.data import DataLoader
  from torchvision import transforms
  from torchvision.datasets import MNIST
label_desc: Use image node_id 1 to create a new Net object from inherited base classes: nn with example: obj = Net()