code: def build_local_block(
      stage_id: int,
      in_channels: int,
      out_channels: int,
      stride: int,
      expand_ratio: float,
      norm: str,
      act_func: str,
      fewer_norm: bool = False,
  ) -> nn.Module:
      if expand_ratio == 1:
          block = ResBlock(
              in_channels=in_channels,
              out_channels=out_channels,
              stride=stride,
              use_bias=(True, False) if fewer_norm else False,
              norm=(None, norm) if fewer_norm else norm,
              act_func=(act_func, None),
          )
      elif stage_id <= 2:
          block = FusedMBConv(
              in_channels=in_channels,
              out_channels=out_channels,
              stride=stride,
              expand_ratio=expand_ratio,
              use_bias=(True, False) if fewer_norm else False,
              norm=(None, norm) if fewer_norm else norm,
              act_func=(act_func, None),
          )
      else:
          block = MBConv(
              in_channels=in_channels,
              out_channels=out_channels,
              stride=stride,
              expand_ratio=expand_ratio,
              use_bias=(True, True, False) if fewer_norm else False,
              norm=(None, None, norm) if fewer_norm else norm,
              act_func=(act_func, act_func, None),
          )
      return block
  
imports: from __future__ import annotations
  from typing import Any
  import torch
  from torch import nn
  from kornia.contrib.models.efficient_vit.nn.ops import ConvLayer, DSConv, EfficientViTBlock, FusedMBConv, IdentityLayer, MBConv, OpSequential, ResBlock, ResidualBlock
  from kornia.contrib.models.efficient_vit.utils import build_kwargs_from_config
label_desc: Use image node_id 2 for calling the EfficientViTLargeBackbone obj's underlying member method code with example usage: obj.build_local_block(stage_id, in_channels, out_channels, stride, expand_ratio, norm, act_func, fewer_norm) and returns: block