class_docstr: Custom Conv Block.
  
  Parameters
  ----------
  in_channels : int
      Input channels of conv layer.
  out_channels : int
      Output channels of conv layer.
  use_dcnv2 : bool
      Whether use modulated deformable convolution(DCN version2).
  momentum : float, default is 0.9
      Momentum for Norm layer.
  norm_layer : nn.HybridBlock, default is BatchNorm.
      The norm_layer instance.
  norm_kwargs : dict
      Extra arguments for norm layer.
class_docstr_tok: ["Custom","Conv","Block",".","Parameters","--","--","--","--","--","in_channels",":","int","Input","channels","of","conv","layer",".","out_channels",":","int","Output","channels","of","conv","layer",".","use_dcnv2",":","bool","Whether","use","modulated","deformable","convolution","(","DCN","version2",")",".","momentum",":","float",",","default","is","0.9","Momentum","for","Norm","layer",".","norm_layer",":","nn.HybridBlock",",","default","is","BatchNorm",".","The","norm_layer","instance",".","norm_kwargs",":","dict","Extra","arguments","for","norm","layer","."]
code: def __init__(
      self,
      in_channels,
      out_channels,
      use_dcnv2=False,
      momentum=0.9,
      norm_layer=nn.BatchNorm,
      norm_kwargs=None,
      **kwargs,
  ):
      super(CustomConv, self).__init__(**kwargs)
      if norm_kwargs is None:
          norm_kwargs = {}
      with self.name_scope():
          self.actf = nn.HybridSequential()
          self.actf.add(
              *[
                  norm_layer(
                      in_channels=out_channels,
                      momentum=momentum,
                      **norm_kwargs,
                  ),
                  nn.Activation("relu"),
              ]
          )
          if use_dcnv2:
              assert hasattr(
                  contrib.cnn, "ModulatedDeformableConvolution"
              ), "No ModulatedDeformableConvolution found in mxnet, consider upgrade..."
              self.conv = contrib.cnn.ModulatedDeformableConvolution(
                  out_channels,
                  kernel_size=3,
                  strides=1,
                  padding=1,
                  dilation=1,
                  num_deformable_group=1,
                  in_channels=in_channels,
              )
          else:
              self.conv = nn.Conv2D(
                  out_channels,
                  kernel_size=3,
                  strides=1,
                  padding=1,
                  dilation=1,
                  in_channels=in_channels,
              )
  
imports: from __future__ import absolute_import
  import warnings
  import numpy
  from mxnet.context import cpu
  from mxnet.gluon import nn
  from mxnet.gluon import contrib
  from .deconv_resnet import BilinearUpSample
  from ..model_zoo import get_model
label_desc: Use image node_id 1 to create a new CustomConv object from inherited base classes: nn with example: obj = CustomConv(in_channels, out_channels, use_dcnv2, momentum, norm_layer, norm_kwargs)