code: def __init__(
      self, ch_in, ch_out, k, pool_size, act="swish", data_format="NCHW"
  ):
      super(SPP, self).__init__()
      self.pool = []
      self.data_format = data_format
      for i, size in enumerate(pool_size):
          pool = self.add_sublayer(
              "pool{}".format(i),
              nn.MaxPool2D(
                  kernel_size=size,
                  stride=1,
                  padding=size // 2,
                  data_format=data_format,
                  ceil_mode=False,
              ),
          )
          self.pool.append(pool)
      self.conv = ConvBNLayer(ch_in, ch_out, k, padding=k // 2, act=act)
  
imports: import math
  import copy
  import numpy
  import paddle
  import paddle.nn
  import paddle.nn.functional
  from ppdet.core.workspace import register, serializable
  from ppdet.modeling.layers import DropBlock, MultiHeadAttention
  from ppdet.modeling.ops import get_act_fn
  from ..backbones.cspresnet import ConvBNLayer, BasicBlock
  from ..shape_spec import ShapeSpec
  from ..initializer import linear_init_
label_desc: Use image node_id 1 to create a new SPP object from inherited base classes: nn with example: obj = SPP(ch_in, ch_out, k, pool_size, act, data_format)