code: def decode_arch_def(
      arch_def,
      depth_multiplier=1.0,
      depth_trunc="ceil",
      experts_multiplier=1,
  ):
      arch_args = []
      for stack_idx, block_strings in enumerate(arch_def):
          assert isinstance(block_strings, list)
          stack_args = []
          repeats = []
          for block_str in block_strings:
              assert isinstance(block_str, str)
              ba, rep = decode_block_str(block_str)
              if (
                  ba.get("num_experts", 0) > 0
                  and experts_multiplier > 1
              ):
                  ba["num_experts"] *= experts_multiplier
              stack_args.append(ba)
              repeats.append(rep)
          arch_args.append(
              scale_stage_depth(
                  stack_args, repeats, depth_multiplier, depth_trunc
              )
          )
      return arch_args
  
file_path: nni/examples/nas/legacy/cream/lib/utils/builder_util.py
imports: import re
  import math
  import torch.nn
  from copy import deepcopy
  from timm.utils import *
  from timm.models.layers.activations import Swish
  from timm.models.layers import CondConv2d, get_condconv_initializer
label_desc: Use image node_id 2 for calling a global function with example usage: decode_arch_def(arch_def, depth_multiplier, depth_trunc, experts_multiplier) and returns: arch_args