class_docstr: Two-dimensional deformable convolutional layer.
  
  This link wraps the
  convolution layer for offset prediction and
  the :func:`~chainer.functions.deformable_convolution_2d_sampler`
  function.
  This also holds the filter weights and bias vectors of two
  convolution layers as parameters.
  
  Args:
      in_channels (int): Number of channels of input arrays. If ``None``,
          parameter initialization will be deferred until the first forward
          data pass at which time the size will be determined.
      out_channels (int): Number of channels of output arrays.
      ksize (int or pair of ints): Size of filters (a.k.a. kernels).
          ``ksize=k`` and ``ksize=(k, k)`` are equivalent.
      stride (int or pair of ints): Stride of filter applications.
          ``stride=s`` and ``stride=(s, s)`` are equivalent.
      pad (int or pair of ints): Spatial padding width for input arrays.
          ``pad=p`` and ``pad=(p, p)`` are equivalent.
      offset_nobias (bool): If ``True``, then this link does not use the
          bias term for the first convolution layer.
      offset_initialW (:ref:`initializer <initializer>`): Initializer to
          initialize the weight of the first convolution layer.
          When it is :class:`numpy.ndarray`, its ``ndim`` should be 4.
      offset_initial_bias (:ref:`initializer <initializer>`): Initializer to
          initialize the bias of the first convolution layer.
          If ``None``, the bias will be initialized to
          zero. When it is :class:`numpy.ndarray`, its ``ndim`` should be 1.
      deform_nobias (bool): If ``True``, then this link does not use the
          bias term for the second convolution layer.
      deform_initialW (:ref:`initializer <initializer>`): Initializer to
          initialize the weight for the second convolution layer.
          When it is :class:`numpy.ndarray`,
          its ``ndim`` should be 4.
      deform_initial_bias (:ref:`initializer <initializer>`): Initializer to
          initialize the bias for the second convolution layer.
          If ``None``, the bias will be initialized to
          zero. When it is :class:`numpy.ndarray`, its ``ndim`` should be 1.
  
  .. seealso::
     See :func:`chainer.functions.deformable_convolution_2d_sampler`.
docstr: Applies the deformable convolution.
  
  Args:
      x (~chainer.Variable): Input image.
  
  Returns:
      ~chainer.Variable: Output of the deformable convolution.
docstr_tok: ["Applies","the","deformable","convolution",".","Args",":","x","(","~chainer.Variable",")",":","Input","image",".","Returns",":","~chainer.Variable",":","Output","of","the","deformable","convolution","."]
code: def forward(self, x):
      """Applies the deformable convolution.
  
      Args:
          x (~chainer.Variable): Input image.
  
      Returns:
          ~chainer.Variable: Output of the deformable convolution.
  
      """
      offset = self.offset_conv(x)
      return self.deform_conv(x, offset)
  
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 2 for calling the DeformableConvolution2D obj's underlying member method code with example usage: obj.forward(x) and returns: self