code: def create_conv2d(
      in_channels: int, out_channels: int, kernel_size: int, **kwargs
  ) -> nn.Module:
      """Select a 2d convolution implementation based on arguments
      Creates and returns one of torch.nn.Conv2d, Conv2dSame, MixedConv2d, or CondConv2d.
      Used extensively by EfficientNet, MobileNetv3 and related networks.
      """
      if isinstance(kernel_size, list):
          assert (
              "num_experts" not in kwargs
          )  # MixNet + CondConv combo not supported currently
          assert (
              "groups" not in kwargs
          )  # MixedConv groups are defined by kernel list
          # We're going to use only lists for defining the MixedConv2d kernel groups,
          # ints, tuples, other iterables will continue to pass to normal conv and specify h, w.
          m = MixedConv2d(
              in_channels, out_channels, kernel_size, **kwargs
          )
      else:
          depthwise = kwargs.pop("depthwise", False)
          # for DW out_channels must be multiple of in_channels as must have out_channels % groups == 0
          groups = in_channels if depthwise else kwargs.pop("groups", 1)
          if "num_experts" in kwargs and kwargs["num_experts"] > 0:
              m = CondConv2d(
                  in_channels,
                  out_channels,
                  kernel_size,
                  groups=groups,
                  **kwargs,
              )
          else:
              m = create_conv2d_pad(
                  in_channels,
                  out_channels,
                  kernel_size,
                  groups=groups,
                  **kwargs,
              )
      return m
  
imports: from torch import nn
  from towhee.models.utils.create_conv2d_pad import create_conv2d_pad
  from towhee.models.layers.cond_conv2d import CondConv2d
  from towhee.models.layers.mixed_conv2d import MixedConv2d
label_desc: Use image node_id 1 for calling a global function with example usage: create_conv2d(in_channels, out_channels, kernel_size) and returns: m