code: def _gen_mobilenet_v3(
      variant: str,
      channel_multiplier: float = 1.0,
      pretrained: bool = False,
      **kwargs,
  ) -> MobileNetV3:
      """Creates a MobileNet-V3 model.
  
      Ref impl: ?
      Paper: https://arxiv.org/abs/1905.02244
  
      Args:
        channel_multiplier: multiplier to number of channels per layer.
      """
      if "small" in variant:
          num_features = 1024
          if "minimal" in variant:
              act_layer = resolve_act_layer(kwargs, "relu")
              arch_def = [
                  # stage 0, 112x112 in
                  ["ds_r1_k3_s2_e1_c16"],
                  # stage 1, 56x56 in
                  ["ir_r1_k3_s2_e4.5_c24", "ir_r1_k3_s1_e3.67_c24"],
                  # stage 2, 28x28 in
                  ["ir_r1_k3_s2_e4_c40", "ir_r2_k3_s1_e6_c40"],
                  # stage 3, 14x14 in
                  ["ir_r2_k3_s1_e3_c48"],
                  # stage 4, 14x14in
                  ["ir_r3_k3_s2_e6_c96"],
                  # stage 6, 7x7 in
                  ["cn_r1_k1_s1_c576"],
              ]
          else:
              act_layer = resolve_act_layer(kwargs, "hard_swish")
              arch_def = [
                  # stage 0, 112x112 in
                  ["ds_r1_k3_s2_e1_c16_se0.25_nre"],  # relu
                  # stage 1, 56x56 in
                  [
                      "ir_r1_k3_s2_e4.5_c24_nre",
                      "ir_r1_k3_s1_e3.67_c24_nre",
                  ],  # relu
                  # stage 2, 28x28 in
                  [
                      "ir_r1_k5_s2_e4_c40_se0.25",
                      "ir_r2_k5_s1_e6_c40_se0.25",
                  ],  # hard-swish
                  # stage 3, 14x14 in
                  ["ir_r2_k5_s1_e3_c48_se0.25"],  # hard-swish
                  # stage 4, 14x14in
                  ["ir_r3_k5_s2_e6_c96_se0.25"],  # hard-swish
                  # stage 6, 7x7 in
                  ["cn_r1_k1_s1_c576"],  # hard-swish
              ]
      else:
          num_features = 1280
          if "minimal" in variant:
              act_layer = resolve_act_layer(kwargs, "relu")
              arch_def = [
                  # stage 0, 112x112 in
                  ["ds_r1_k3_s1_e1_c16"],
                  # stage 1, 112x112 in
                  ["ir_r1_k3_s2_e4_c24", "ir_r1_k3_s1_e3_c24"],
                  # stage 2, 56x56 in
                  ["ir_r3_k3_s2_e3_c40"],
                  # stage 3, 28x28 in
                  [
                      "ir_r1_k3_s2_e6_c80",
                      "ir_r1_k3_s1_e2.5_c80",
                      "ir_r2_k3_s1_e2.3_c80",
                  ],
                  # stage 4, 14x14in
                  ["ir_r2_k3_s1_e6_c112"],
                  # stage 5, 14x14in
                  ["ir_r3_k3_s2_e6_c160"],
                  # stage 6, 7x7 in
                  ["cn_r1_k1_s1_c960"],
              ]
          else:
              act_layer = resolve_act_layer(kwargs, "hard_swish")
              arch_def = [
                  # stage 0, 112x112 in
                  ["ds_r1_k3_s1_e1_c16_nre"],  # relu
                  # stage 1, 112x112 in
                  [
                      "ir_r1_k3_s2_e4_c24_nre",
                      "ir_r1_k3_s1_e3_c24_nre",
                  ],  # relu
                  # stage 2, 56x56 in
                  ["ir_r3_k5_s2_e3_c40_se0.25_nre"],  # relu
                  # stage 3, 28x28 in
                  [
                      "ir_r1_k3_s2_e6_c80",
                      "ir_r1_k3_s1_e2.5_c80",
                      "ir_r2_k3_s1_e2.3_c80",
                  ],  # hard-swish
                  # stage 4, 14x14in
                  ["ir_r2_k3_s1_e6_c112_se0.25"],  # hard-swish
                  # stage 5, 14x14in
                  ["ir_r3_k5_s2_e6_c160_se0.25"],  # hard-swish
                  # stage 6, 7x7 in
                  ["cn_r1_k1_s1_c960"],  # hard-swish
              ]
      se_layer = partial(
          SqueezeExcite,
          gate_layer="hard_sigmoid",
          force_act_layer=nn.ReLU,
          rd_round_fn=round_channels,
      )
      model_kwargs = dict(
          block_args=decode_arch_def(arch_def),
          num_features=num_features,
          stem_size=16,
          fix_stem=channel_multiplier < 0.75,
          round_chs_fn=partial(
              round_channels, multiplier=channel_multiplier
          ),
          norm_layer=partial(nn.BatchNorm2d, **resolve_bn_args(kwargs)),
          act_layer=act_layer,
          se_layer=se_layer,
          **kwargs,
      )
      model = _create_mnv3(variant, pretrained, **model_kwargs)
      return model
  
imports: from functools import partial
  from typing import Callable, List, Optional, Tuple
  import torch
  import torch.nn
  import torch.nn.functional
  from torch.utils.checkpoint import checkpoint
  from timm.data import IMAGENET_DEFAULT_MEAN, IMAGENET_DEFAULT_STD, IMAGENET_INCEPTION_MEAN, IMAGENET_INCEPTION_STD
  from timm.layers import SelectAdaptivePool2d, Linear, LayerType, PadType, create_conv2d, get_norm_act_layer
  from ._builder import build_model_with_cfg, pretrained_cfg_for_features
  from ._efficientnet_blocks import SqueezeExcite
  from ._efficientnet_builder import BlockArgs, EfficientNetBuilder, decode_arch_def, efficientnet_init_weights, round_channels, resolve_bn_args, resolve_act_layer, BN_EPS_TF_DEFAULT
  from ._features import FeatureInfo, FeatureHooks
  from ._manipulate import checkpoint_seq
  from ._registry import generate_default_cfgs, register_model, register_model_deprecations
label_desc: Use image node_id 3 for calling a global function with example usage: _gen_mobilenet_v3(variant, channel_multiplier, pretrained) and returns: model