code: def select_conv2d(in_chs, out_chs, kernel_size, **kwargs):
      assert "groups" not in kwargs  # only use 'depthwise' bool arg
      if isinstance(kernel_size, list):
          assert (
              "num_experts" not in kwargs
          )  # MixNet + CondConv combo not supported currently
          # 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_chs, out_chs, kernel_size, **kwargs)
      else:
          depthwise = kwargs.pop("depthwise", False)
          groups = out_chs if depthwise else 1
          if "num_experts" in kwargs and kwargs["num_experts"] > 0:
              m = CondConv2d(
                  in_chs, out_chs, kernel_size, groups=groups, **kwargs
              )
          else:
              m = create_conv2d_pad(
                  in_chs, out_chs, kernel_size, groups=groups, **kwargs
              )
      return m
  
imports: import collections.abc
  import math
  from functools import partial
  from itertools import repeat
  from typing import Tuple, Optional
  import numpy
  import torch
  import torch.nn
  import torch.nn.functional
  from .config import *
label_desc: Use image node_id 11 for calling a global function with example usage: select_conv2d(in_chs, out_chs, kernel_size) and returns: m