class_docstr: AttentionModule Layer, which contains some depth-wise strip convolutions.
  
  Args:
      dim (int): Number of input channels.
      kernel_sizes (list[int], optional): The height or width of each strip convolution kernel. Default: [7, 11, 21].
class_docstr_tok: ["AttentionModule","Layer",",","which","contains","some","depth-wise","strip","convolutions",".","Args",":","dim","(","int",")",":","Number","of","input","channels",".","kernel_sizes","(","list","[","int","]",",","optional",")",":","The","height","or","width","of","each","strip","convolution","kernel",".","Default",":","[","7",",","11",",","21","]","."]
code: def __init__(self, dim, kernel_sizes=[7, 11, 21]):
      super().__init__()
      self.conv0 = nn.Conv2D(dim, dim, 5, padding=2, groups=dim)
  
      self.dwconvs = nn.LayerList(
          [
              nn.Sequential(
                  (f"conv{i+1}_1", get_depthwise_conv(dim, (1, k))),
                  (f"conv{i+1}_2", get_depthwise_conv(dim, (k, 1))),
              )
              for i, k in enumerate(kernel_sizes)
          ]
      )
  
      self.conv_out = nn.Conv2D(dim, dim, 1)
  
imports: import math
  import numpy
  import paddle
  import paddle.nn
  from paddle.nn import Conv2D
  from paddle.nn.initializer import Assign, Normal
  from paddleseg.cvlibs import manager
  from paddleseg.models.backbones.transformer_utils import DropPath, ones_, to_2tuple, zeros_
  from paddleseg.models.layers import SyncBatchNorm
  from paddleseg.utils import utils
label_desc: Use image node_id 1 to create a new AttentionModule object from inherited base classes: nn with example: obj = AttentionModule(dim, kernel_sizes)