code: def __init__(
      self,
      in_channels,
      out_channels,
      dw_kernel,
      dw_padding,
      dw_stride=1,
      activation=None,
      use_bias=False,
      norm_layer=None,
  ):
      super(SeparableConv2d, self).__init__()
      _activation = select_activation_function(activation)
      self.body = nn.Sequential(
          nn.Conv2d(
              in_channels,
              in_channels,
              kernel_size=dw_kernel,
              stride=dw_stride,
              padding=dw_padding,
              bias=use_bias,
              groups=in_channels,
          ),
          nn.Conv2d(
              in_channels,
              out_channels,
              kernel_size=1,
              stride=1,
              bias=use_bias,
          ),
          norm_layer(out_channels)
          if norm_layer is not None
          else nn.Identity(),
          _activation(),
      )
  
imports: import math
  import torch
  import numbers
  import torch.nn
  import torch.nn.functional
label_desc: Use image node_id 1 to create a new SeparableConv2d object from inherited base classes: nn with example: obj = SeparableConv2d(in_channels, out_channels, dw_kernel, dw_padding, dw_stride, activation, use_bias, norm_layer)