conv2d

class deepinv.physics.functional.conv2d(x: Tensor, filter: Tensor, padding: str = 'valid', correlation=False)[source]

Bases:

A helper function performing the 2d convolution of images x and filter. The adjoint of this operation is deepinv.physics.functional.conv_transposed2d()

Parameters:
  • x (torch.Tensor) – Image of size (B, C, W, H).

  • filter (torch.Tensor) – Filter of size (b, c, w, h) where b can be either 1 or B and c can be either 1 or C.

filter center is at (hh, ww) where hh = h//2 if h is odd and hh = h//2 - 1 if h is even. Same for ww. :param bool correlation: choose True if you want a cross-correlation (default False)

..note:

Contrarily to Pytorch torch.functional.conv2d(), which performs a cross-correlation, this function performs a convolution.

If b = 1 or c = 1, then this function supports broadcasting as the same as numpy. Otherwise, each channel of each image is convolved with the corresponding kernel.

Parameters:

padding – (options = valid, circular, replicate, reflect, constant) If padding = 'valid' the blurred output is smaller than the image (no padding), otherwise the blurred output has the same size as the image.

constant corresponds to zero padding or same in torch.nn.functional.conv2d()

Returns:

(torch.Tensor) : the output