code: def __init__(
      self,
      in_channels: int,
      out_channels: int,
      kernel_size: int,
      stride: int = 1,
      padding: int = 0,
      groups: int = 1,
      activation: type[Module] = nn.Identity,
  ) -> None:
      super().__init__()
      self.c = nn.Conv2d(
          in_channels,
          out_channels,
          kernel_size,
          stride,
          padding,
          groups=groups,
          bias=False,
      )
      self.bn = nn.BatchNorm2d(out_channels)
      self.act = activation()
  
imports: from __future__ import annotations
  import itertools
  import warnings
  from typing import Any, Optional
  import torch
  import torch.nn.functional
  from torch import nn
  from torch.utils import checkpoint
  from kornia.contrib.models.common import DropPath, LayerNorm2d, window_partition, window_unpartition
  from kornia.core import Module, Tensor
  from kornia.core.check import KORNIA_CHECK
label_desc: Use image node_id 1 to create a new ConvBN object from inherited base classes: nn with example: obj = ConvBN(in_channels, out_channels, kernel_size, stride, padding, groups, activation)