class_docstr: Large Kernel Convolutions with new parameters.
  
  Args:
      in_channels (`int`): input dimension
      out_channels (`int`): output dimension
      kernel_size (`int`): kernel size of conv
      stride (`int`): stride of conv
      groups (`int`): groups of conv
      small_kernel (`int`): small kernel size
      small_kernel_merged (`bool`): flag to merge
class_docstr_tok: ["Large","Kernel","Convolutions","with","new","parameters",".","Args",":","in_channels","(","`","int","`",")",":","input","dimension","out_channels","(","`","int","`",")",":","output","dimension","kernel_size","(","`","int","`",")",":","kernel","size","of","conv","stride","(","`","int","`",")",":","stride","of","conv","groups","(","`","int","`",")",":","groups","of","conv","small_kernel","(","`","int","`",")",":","small","kernel","size","small_kernel_merged","(","`","bool","`",")",":","flag","to","merge"]
code: def __init__(
      self,
      in_channels,
      out_channels,
      kernel_size,
      stride,
      groups,
      small_kernel,
      small_kernel_merged=False,
  ):
      super().__init__()
      self.kernel_size = kernel_size
      self.small_kernel = small_kernel
      # We assume the conv does not change the feature map size, so padding = k//2.
      # Otherwise, you may configure padding as you wish, and change the padding of small_conv accordingly.
      padding = kernel_size // 2
      if small_kernel_merged:
          self.lkb_reparam = nn.Conv2d(
              in_channels=in_channels,
              out_channels=out_channels,
              kernel_size=kernel_size,
              stride=stride,
              padding=padding,
              dilation=1,
              groups=groups,
              bias=True,
          )
      else:
          self.lkb_origin = conv_bn(
              in_channels=in_channels,
              out_channels=out_channels,
              kernel_size=kernel_size,
              stride=stride,
              padding=padding,
              groups=groups,
          )
          if small_kernel is not None:
              assert (
                  small_kernel <= kernel_size
              ), "The kernel size for re-param cannot be larger than the large kernel!"
              self.small_conv = conv_bn(
                  in_channels=in_channels,
                  out_channels=out_channels,
                  kernel_size=small_kernel,
                  stride=stride,
                  padding=small_kernel // 2,
                  groups=groups,
              )
  
imports: from torch import nn
  from towhee.models.layers.droppath import DropPath
  from towhee.models.layers.conv_bn_activation import Conv2dBNActivation
label_desc: Use image node_id 1 to create a new ReparamLargeKernelConv object from inherited base classes: nn with example: obj = ReparamLargeKernelConv(in_channels, out_channels, kernel_size, stride, groups, small_kernel, small_kernel_merged)