class_docstr: Two-dimensional depthwise convolutional layer.
  
  This link wraps the :func:`~chainer.functions.depthwise_convolution_2d`
  function and holds the filter weight and bias vector 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.
      channel_multiplier (int): Channel multiplier number. Number of output
          arrays equal ``in_channels * channel_multiplier``.
      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.
      nobias (bool): If ``True``, then this link does not use the bias term.
      initialW (:ref:`initializer <initializer>`): Initializer to
          initialize the weight. When it is :class:`numpy.ndarray`,
          its ``ndim`` should be 4.
      initial_bias (:ref:`initializer <initializer>`): Initializer to
          initialize the bias. 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.depthwise_convolution_2d`.
  
  Attributes:
      W (~chainer.Variable): Weight parameter.
      b (~chainer.Variable): Bias parameter.
class_docstr_tok: ["Two-dimensional","depthwise","convolutional","layer",".","This","link","wraps","the",":","func",":","`","~chainer.functions.depthwise_convolution_2d","`","function","and","holds","the","filter","weight","and","bias","vector","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",".","channel_multiplier","(","int",")",":","Channel","multiplier","number",".","Number","of","output","arrays","equal","``","in_channels","*","channel_multiplier","``",".","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",".","nobias","(","bool",")",":","If","``","True","``",",","then","this","link","does","not","use","the","bias","term",".","initialW","(",":","ref",":","`","initializer","<","initializer",">","`",")",":","Initializer","to","initialize","the","weight",".","When","it","is",":","class",":","`","numpy.ndarray","`",",","its","``","ndim","``","should","be","4.","initial_bias","(",":","ref",":","`","initializer","<","initializer",">","`",")",":","Initializer","to","initialize","the","bias",".","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.depthwise_convolution_2d","`",".","Attributes",":","W","(","~chainer.Variable",")",":","Weight","parameter",".","b","(","~chainer.Variable",")",":","Bias","parameter","."]
docstr: Applies the depthwise convolution layer.
  
  Args:
      x (chainer.Variable or :class:`numpy.ndarray` or cupy.ndarray):
          Input image.
  
  Returns:
      ~chainer.Variable: Output of the depthwise convolution.
docstr_tok: ["Applies","the","depthwise","convolution","layer",".","Args",":","x","(","chainer.Variable","or",":","class",":","`","numpy.ndarray","`","or","cupy.ndarray",")",":","Input","image",".","Returns",":","~chainer.Variable",":","Output","of","the","depthwise","convolution","."]
code: def forward(self, x):
      """Applies the depthwise convolution layer.
  
      Args:
          x (chainer.Variable or :class:`numpy.ndarray` or cupy.ndarray):
              Input image.
  
      Returns:
          ~chainer.Variable: Output of the depthwise convolution.
  
      """
      if self.W.array is None:
          self._initialize_params(x.shape[1])
      return depthwise_convolution_2d.depthwise_convolution_2d(
          x, self.W, self.b, self.stride, self.pad
      )
  
file_path: chainer/chainer/links/connection/depthwise_convolution_2d.py
imports: import numpy
  from chainer.functions.connection import depthwise_convolution_2d
  from chainer import initializers
  from chainer import link
  from chainer import variable
label_desc: Use image node_id 3 for calling the DepthwiseConvolution2D obj's underlying member method code with example usage: obj.forward(x) and returns: depthwise_convolution_2d