conv3d_fft#

class deepinv.physics.functional.conv3d_fft(x: Tensor, filter: Tensor, real_fft: bool = True, padding: str = 'valid')[source]#

Bases:

A helper function performing the 3d convolution of x and filter using FFT. The adjoint of this operation is deepinv.physics.functional.conv_transpose3d_fft().

If b = 1 or c = 1, this function applies the same filter for each channel. Otherwise, each channel of each image is convolved with the corresponding kernel.

Padding conditions include 'circular' and 'valid'.

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

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

  • real_fft (bool) – for real filters and images choose True (default) to accelerate computation

  • padding (str) – can be 'valid' (default) or 'circular'

Note

The filter center is located at (d//2, h//2, w//2).

Returns:

torch.Tensor : the output of the convolution, which has the same shape as :math:x if padding = 'circular', (B, C, D-d+1, W-w+1, H-h+1) if padding = 'valid'