class_docstr: Depthwise seperable convolution with batchnorm and activation.
class_docstr_tok: ["Depthwise","seperable","convolution","with","batchnorm","and","activation","."]
code: def __init__(
      self,
      in_channels: int,
      out_channels: int,
      activation: str,
      kernel_size: int = 3,
      stride=1,
      padding=1,
      dilation=1,
      normalization: str = NORM_BATCH,
  ):
      super(DepthwiseSeparableConv2dBlock, self).__init__()
      self.depthwise = DepthwiseSeparableConv2d(
          in_channels,
          out_channels,
          kernel_size=kernel_size,
          stride=stride,
          padding=padding,
          dilation=dilation,
          bias=False,
      )
      self.bn = instantiate_normalization_block(
          normalization, out_channels
      )
      self.act = instantiate_activation_block(activation, inplace=True)
  
file_path: pytorch-toolbelt/pytorch_toolbelt/modules/dsconv.py
imports: from torch import nn, Tensor
  from pytorch_toolbelt.modules.normalization import instantiate_normalization_block, NORM_BATCH
  from pytorch_toolbelt.modules.activations import instantiate_activation_block
label_desc: Use image node_id 1 to create a new DepthwiseSeparableConv2dBlock object from inherited base classes: nn with example: obj = DepthwiseSeparableConv2dBlock(in_channels, out_channels, activation, kernel_size, stride, padding, dilation, normalization)