conv2d

dragon.nn.conv2d(
  inputs,
  kernel_shape=3,
  strides=1,
  pads=0,
  dilations=1,
  group=1,
  padding='VALID',
  data_format='NCHW',
  **kwargs
)[source]

Apply the 2d convolution.

  • If data_format is 'NCHW', excepts input shape \((N, C_{\text{in}}, H, W)\), weight shape \((C_{\text{out}}, C_{\text{in}}, H_{\text{k}}, W_{\text{k}})\), and output shape is \((N, C_{\text{out}}, H_{\text{out}}, W_{\text{out}})\).
  • If data_format is 'NHWC', excepts input shape \((N, H, W, C_{\text{in}})\), weight shape \((C_{\text{out}}, H_{\text{k}}, W_{\text{k}}, C_{\text{in}})\), and output shape is \((N, H_{\text{out}}, W_{\text{out}}, C_{\text{out}})\).
  • If padding is 'VALID', pads controls the explicit padding size. Otherwise, size are computed automatically use the given method.

Examples:

x = dragon.ones((1, 2, 2, 2))
w = dragon.ones((3, 2, 1, 1))
y = dragon.nn.conv2d([x, w], kernel_shape=1)
assert y.shape == (1, 3, 2, 2)
Parameters:
  • inputs (Sequence[dragon.Tensor]) The tensor x, weight and optional bias.
  • kernel_shape (Union[int, Sequence[int]], optional, default=3) The shape of convolution window.
  • strides (Union[int, Sequence[int]], optional, default=1) The stride of convolution window.
  • pads (Union[int, Sequence[int]], optional, default=0) The zero padding size.
  • dilations (Union[int, Sequence[int]], optional, default=1) The rate of dilated convolution.
  • group (int, optional, default=1) The number of groups to split channels into.
  • padding (str, optional, default='VALID') 'VALID', 'SAME', 'SAME_UPPER' or 'SAME_LOWER'.
  • data_format (str, optional, default='NCHW') 'NCHW' or 'NHWC'.
Returns:

dragon.Tensor The output tensor.