class_docstr: This class defines the ESP block, which is based on the following principle
      Reduce ---> Split ---> Transform --> Merge
class_docstr_tok: ["This","class","defines","the","ESP","block",",","which","is","based","on","the","following","principle","Reduce","--","-",">","Split","--","-",">","Transform","--",">","Merge"]
code: def __init__(self, nIn, nOut, add=True, config=[[3, 1], [5, 1]]):
      super().__init__()
  
      group_n = len(config)
      assert group_n == 2
      n = int(nOut / group_n)
      n1 = nOut - group_n * n
  
      self.c1 = C(nIn, n, 1, 1, group=group_n)
      # self.c1 = C(nIn, n, 1, 1)
  
      for i in range(group_n):
          if i == 0:
              self.layer_0 = S2block(
                  n, n + n1, kSize=config[i][0], avgsize=config[i][1]
              )
          else:
              self.layer_1 = S2block(
                  n, n, kSize=config[i][0], avgsize=config[i][1]
              )
  
      self.BR = BR(nOut)
      self.add = add
      self.group_n = group_n
  
imports: import paddle
  import paddle.nn
  import paddle.nn.functional
  from paddleseg.models import layers
  from paddleseg.cvlibs import manager
  from paddleseg.utils import utils
label_desc: Use image node_id 1 to create a new S2module object from inherited base classes: nn with example: obj = S2module(nIn, nOut, add, config)