diffusion_models.models.multicoil.MultiCoilReducer

class diffusion_models.models.multicoil.MultiCoilReducer(channel_factors=(4, 8, 16, 32), kernel_size=3)[source]

Bases: Module

__init__(channel_factors=(4, 8, 16, 32), kernel_size=3)[source]

Constructor of MultiCoilReducer Class.

This class takes every coil independently (treats them like a sub-fraction of a batch), increases the channel size massively (from 2 initial channels for complex k-space data) via several convolutional layers and then averages those channels over the coil dimension. Averaging is invariant to permutations of the input order, so the coil order or the number of coils will not matter anymore. Inspiration was drawn from point cloud processing [1], see below.

Parameters:
  • channel_factors (List[int]) – sequence that includes all factors for channel increases

  • kernel_size (int) – kernel size for conv layers

Methods

__init__([channel_factors, kernel_size])

Constructor of MultiCoilReducer Class.

forward(x)

rtype:

Tensor, 'batch out_channels height width')