class_docstr: Apply a two-dimensional deformable convolution layer using offsets
code: def __init__(
      self,
      in_channels,
      out_channels,
      ksize,
      stride=1,
      pad=0,
      nobias=False,
      initialW=None,
      initial_bias=None,
  ):
      super(DeformableConvolution2DSampler, self).__init__()
  
      self.ksize = ksize
      self.stride = _pair(stride)
      self.pad = _pair(pad)
      self.out_channels = out_channels
      self.initialW = initialW
  
      if initialW is None:
          initialW = constant.Zero()
  
      with self.init_scope():
          W_initializer = initializers._get_initializer(initialW)
          self.W = variable.Parameter(W_initializer)
  
          if nobias:
              self.b = None
          else:
              if initial_bias is None:
                  initial_bias = initializers.Constant(0)
              bias_initializer = initializers._get_initializer(
                  initial_bias
              )
              self.b = variable.Parameter(bias_initializer)
  
      if in_channels is not None:
          self._initialize_params(in_channels)
  
file_path: chainer/chainer/links/connection/deformable_convolution_2d.py
imports: from chainer.functions import deformable_convolution_2d_sampler
  from chainer import initializers
  from chainer.initializers import constant
  from chainer import link
  from chainer.links.connection.convolution_2d import Convolution2D
  from chainer import variable
label_desc: Use image node_id 1 to create a new DeformableConvolution2DSampler object from inherited base classes: link with example: obj = DeformableConvolution2DSampler(in_channels, out_channels, ksize, stride, pad, nobias, initialW, initial_bias)