code: def _make_blocks(self, blocks, in_channels, channels):
      result = []
      for i in range(blocks):
          stride = 2 if i == 0 else 1
          inp = in_channels if i == 0 else channels
          oup = channels
  
          base_mid_channels = channels // 2
          mid_channels = int(base_mid_channels)  # prepare for scale
          self._layerchoice_count += 1
          choice_block = LayerChoice(
              [
                  ShuffleNetBlock(
                      inp,
                      oup,
                      mid_channels=mid_channels,
                      ksize=3,
                      stride=stride,
                      affine=self._affine,
                  ),
                  ShuffleNetBlock(
                      inp,
                      oup,
                      mid_channels=mid_channels,
                      ksize=5,
                      stride=stride,
                      affine=self._affine,
                  ),
                  ShuffleNetBlock(
                      inp,
                      oup,
                      mid_channels=mid_channels,
                      ksize=7,
                      stride=stride,
                      affine=self._affine,
                  ),
                  ShuffleXceptionBlock(
                      inp,
                      oup,
                      mid_channels=mid_channels,
                      stride=stride,
                      affine=self._affine,
                  ),
              ],
              label="LayerChoice" + str(self._layerchoice_count),
          )
          result.append(choice_block)
  
          if stride == 2:
              self._feature_map_size //= 2
      return result
  
file_path: nni/examples/nas/legacy/oneshot/spos/network.py
imports: import os
  import pickle
  import re
  import torch
  import nni.retiarii.nn.pytorch
  from nni.retiarii.nn.pytorch import LayerChoice
  from nni.retiarii.serializer import model_wrapper
  from blocks import ShuffleNetBlock, ShuffleXceptionBlock
label_desc: Use image node_id 2 for calling the ShuffleNetV2OneShot obj's underlying member method code with example usage: obj._make_blocks(blocks, in_channels, channels) and returns: result