code: def mobilenet_v3_small(
      num_classes: int = 1000,
      reduced_tail: bool = False,
      dilated: 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.
          dilated: whether using dilated conv
      """
      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
      dilation = 2 if dilated else 1
  
      inverted_residual_setting = [
          # input_c, kernel, expanded_c, out_c, use_se, activation, stride, dilation
          bneck_conf(16, 3, 16, 16, True, "RE", 2, 1),  # C1
          bneck_conf(16, 3, 72, 24, False, "RE", 2, 1),  # C2
          bneck_conf(24, 3, 88, 24, False, "RE", 1, 1),
          bneck_conf(24, 5, 96, 40, True, "HS", 2, 1),  # C3
          bneck_conf(40, 5, 240, 40, True, "HS", 1, 1),
          bneck_conf(40, 5, 240, 40, True, "HS", 1, 1),
          bneck_conf(40, 5, 120, 48, True, "HS", 1, 1),
          bneck_conf(48, 5, 144, 48, True, "HS", 1, 1),
          bneck_conf(
              48, 5, 288, 96 // reduce_divider, True, "HS", 2, dilation
          ),  # C4
          bneck_conf(
              96 // reduce_divider,
              5,
              576 // reduce_divider,
              96 // reduce_divider,
              True,
              "HS",
              1,
              dilation,
          ),
          bneck_conf(
              96 // reduce_divider,
              5,
              576 // reduce_divider,
              96 // reduce_divider,
              True,
              "HS",
              1,
              dilation,
          ),
      ]
      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, dilated) and returns: MobileNetV3