class_docstr: The full search space proposed by `NAS-Bench-201 <https://arxiv.org/abs/2001.00326>`__.
  
  It's a stack of :class:`~nni.nas.hub.pytorch.modules.NasBench201Cell`.
  
  Parameters
  ----------
  stem_out_channels
      The output channels of the stem.
  num_modules_per_stack
      The number of modules (cells) in each stack. Each cell is a :class:`~nni.nas.hub.pytorch.modules.NasBench201Cell`.
  num_labels
      Number of categories for classification.
class_docstr_tok: ["The","full","search","space","proposed","by","`","NAS-Bench-201","<","https",":","\/\/arxiv.org\/abs\/2001.00326",">","`","__",".","It","'s","a","stack","of",":","class",":","`","~nni.nas.hub.pytorch.modules.NasBench201Cell","`",".","Parameters","--","--","--","--","--","stem_out_channels","The","output","channels","of","the","stem",".","num_modules_per_stack","The","number","of","modules","(","cells",")","in","each","stack",".","Each","cell","is","a",":","class",":","`","~nni.nas.hub.pytorch.modules.NasBench201Cell","`",".","num_labels","Number","of","categories","for","classification","."]
code: def __init__(
      self,
      stem_out_channels: int = 16,
      num_modules_per_stack: int = 5,
      num_labels: int = 10,
  ):
      super().__init__()
      self.channels = C = stem_out_channels
      self.num_modules = N = num_modules_per_stack
      self.num_labels = num_labels
  
      self.stem = nn.Sequential(
          nn.Conv2d(3, C, kernel_size=3, padding=1, bias=False),
          nn.BatchNorm2d(C),
      )
  
      layer_channels = (
          [C] * N + [C * 2] + [C * 2] * N + [C * 4] + [C * 4] * N
      )
      layer_reductions = (
          [False] * N + [True] + [False] * N + [True] + [False] * N
      )
  
      C_prev = C
      self.cells = nn.ModuleList()
      for C_curr, reduction in zip(layer_channels, layer_reductions):
          if reduction:
              cell = ResNetBasicblock(C_prev, C_curr, 2)
          else:
              ops: Dict[str, Callable[[int, int], nn.Module]] = {
                  prim: self._make_op_factory(prim)
                  for prim in PRIMITIVES
              }
              cell = NasBench201Cell(ops, C_prev, C_curr, label="cell")
          self.cells.append(cell)
          C_prev = C_curr
  
      self.lastact = nn.Sequential(
          nn.BatchNorm2d(C_prev), nn.ReLU(inplace=True)
      )
      self.global_pooling = nn.AdaptiveAvgPool2d(1)
      self.classifier = nn.Linear(C_prev, self.num_labels)
  
imports: from typing import Callable, Dict
  import torch
  import torch.nn
  from nni.nas.nn.pytorch import ModelSpace
  from .modules.nasbench201 import NasBench201Cell
label_desc: Use image node_id 1 to create a new NasBench201 object from inherited base classes: ModelSpace with example: obj = NasBench201(stem_out_channels, num_modules_per_stack, num_labels)