code: def get_vit_param_depth(param_name: str, num_layers: int) -> int:
      layer_0 = {"patch_embed", "pos_embed", "cls_token"}
      if any(l in param_name for l in layer_0):
          return 0
  
      block_regex = re.compile(r"blocks\.([0-9]+)\.")
      match = block_regex.search(param_name)
      if match is not None:
          return int(match.group(1)) + 1
      else:
          return num_layers
  
file_path: vissl/vissl/optimizers/param_groups/layer_decay.py
imports: import re
  from typing import Dict
  import torch.nn
  from fvcore.common.param_scheduler import ParamScheduler
  from vissl.config import AttrDict
  from vissl.optimizers.param_groups.registry import register_param_group_constructor
  from vissl.optimizers.param_scheduler.layer_decay_scheduler import LayerDecayScheduler
  from vissl.utils.misc import is_apex_available
label_desc: Use image node_id 1 for calling a global function with example usage: get_vit_param_depth(param_name, num_layers) and returns: int, unknown, num_layers