code: def mobilenet_v3_small(
      num_classes: int = 1000, reduced_tail: bool = False
  ) -> MobileNetV3:
      """
      Constructs a large MobileNetV3 architecture from
      "Searching for MobileNetV3" <https://arxiv.org/abs/1905.02244>.
  
      weights_link:
      https://download.pytorch.org/models/mobilenet_v3_small-047dcff4.pth
  
      Args:
          num_classes (int): number of classes
          reduced_tail (bool): If True, reduces the channel counts of all feature layers
              between C4 and C5 by 2. It is used to reduce the channel redundancy in the
              backbone for Detection and Segmentation.
      """
      width_multi = 1.0
      bneck_conf = partial(
          InvertedResidualConfig, width_multi=width_multi
      )
      adjust_channels = partial(
          InvertedResidualConfig.adjust_channels,
          width_multi=width_multi,
      )
  
      reduce_divider = 2 if reduced_tail else 1
  
      inverted_residual_setting = [
          # input_c, kernel, expanded_c, out_c, use_se, activation, stride
          bneck_conf(16, 3, 16, 16, True, "RE", 2),  # C1
          bneck_conf(16, 3, 72, 24, False, "RE", 2),  # C2
          bneck_conf(24, 3, 88, 24, False, "RE", 1),
          bneck_conf(24, 5, 96, 40, True, "HS", 2),  # C3
          bneck_conf(40, 5, 240, 40, True, "HS", 1),
          bneck_conf(40, 5, 240, 40, True, "HS", 1),
          bneck_conf(40, 5, 120, 48, True, "HS", 1),
          bneck_conf(48, 5, 144, 48, True, "HS", 1),
          bneck_conf(
              48, 5, 288, 96 // reduce_divider, True, "HS", 2
          ),  # C4
          bneck_conf(
              96 // reduce_divider,
              5,
              576 // reduce_divider,
              96 // reduce_divider,
              True,
              "HS",
              1,
          ),
          bneck_conf(
              96 // reduce_divider,
              5,
              576 // reduce_divider,
              96 // reduce_divider,
              True,
              "HS",
              1,
          ),
      ]
      last_channel = adjust_channels(1024 // reduce_divider)  # C5
  
      return MobileNetV3(
          inverted_residual_setting=inverted_residual_setting,
          last_channel=last_channel,
          num_classes=num_classes,
      )
  
imports: from typing import Callable, List, Optional
  import torch
  from torch import nn, Tensor
  from torch.nn import functional
  from functools import partial
label_desc: Use image node_id 3 for calling a global function with example usage: mobilenet_v3_small(num_classes, reduced_tail) and returns: MobileNetV3