code: def __init__(self, inp, oups, kernel_size, stride):
      super(SpatialSepConvSF, self).__init__()
  
      oup1, oup2 = oups
      self.conv = nn.Sequential(
          nn.Conv2D(
              inp,
              oup1,
              (kernel_size, 1),
              (stride, 1),
              (kernel_size // 2, 0),
              bias_attr=False,
              groups=1,
          ),
          nn.BatchNorm2D(oup1),
          nn.Conv2D(
              oup1,
              oup1 * oup2,
              (1, kernel_size),
              (1, stride),
              (0, kernel_size // 2),
              bias_attr=False,
              groups=oup1,
          ),
          nn.BatchNorm2D(oup1 * oup2),
          ChannelShuffle(oup1),
      )
  
imports: from __future__ import absolute_import
  from __future__ import division
  from __future__ import print_function
  import paddle
  import paddle.nn
  from ppocr.modeling.backbones.det_mobilenet_v3 import make_divisible
label_desc: Use image node_id 1 to create a new SpatialSepConvSF object from inherited base classes: nn with example: obj = SpatialSepConvSF(inp, oups, kernel_size, stride)