code: def __init__(
      self,
      in_channels,
      out_channels1,
      out_channels2,
      num_groups,
      stride,
      scale,
      conv_lr=1.0,
      conv_decay=0.0,
      norm_decay=0.0,
      norm_type="bn",
      name=None,
  ):
      super(DepthwiseSeparable, self).__init__()
  
      self._depthwise_conv = ConvBNLayer(
          in_channels,
          int(out_channels1 * scale),
          kernel_size=3,
          stride=stride,
          padding=1,
          num_groups=int(num_groups * scale),
          conv_lr=conv_lr,
          conv_decay=conv_decay,
          norm_decay=norm_decay,
          norm_type=norm_type,
          name=name + "_dw",
      )
  
      self._pointwise_conv = ConvBNLayer(
          int(out_channels1 * scale),
          int(out_channels2 * scale),
          kernel_size=1,
          stride=1,
          padding=0,
          conv_lr=conv_lr,
          conv_decay=conv_decay,
          norm_decay=norm_decay,
          norm_type=norm_type,
          name=name + "_sep",
      )
  
imports: from __future__ import absolute_import
  from __future__ import division
  from __future__ import print_function
  import paddle.nn
  import paddle.nn.functional
  from paddle import ParamAttr
  from paddle.regularizer import L2Decay
  from paddle.nn.initializer import KaimingNormal
  from ppdet.core.workspace import register, serializable
  from numbers import Integral
  from ..shape_spec import ShapeSpec
label_desc: Use image node_id 1 to create a new DepthwiseSeparable object from inherited base classes: nn with example: obj = DepthwiseSeparable(in_channels, out_channels1, out_channels2, num_groups, stride, scale, conv_lr, conv_decay, norm_decay, norm_type, name)