direct.nn.multidomainnet package#

Submodules#

direct.nn.multidomainnet.config module#

class direct.nn.multidomainnet.config.MultiDomainNetConfig(model_name='???', engine_name=None, standardization=True, num_filters=16, num_pool_layers=4, dropout_probability=0.0)[source]#

Bases: ModelConfig

standardization = True#
num_filters = 16#
num_pool_layers = 4#
dropout_probability = 0.0#
__init__(model_name='???', engine_name=None, standardization=True, num_filters=16, num_pool_layers=4, dropout_probability=0.0)#

direct.nn.multidomainnet.multidomain module#

class direct.nn.multidomainnet.multidomain.MultiDomainConv2d(forward_operator, backward_operator, in_channels, out_channels, **kwargs)[source]#

Bases: Module

__init__(forward_operator, backward_operator, in_channels, out_channels, **kwargs)[source]#

Inits MultiDomainConv2d.

Parameters:
  • forward_operator (Callable) – Forward Operator.

  • backward_operator (Callable) – Backward Operator.

  • in_channels (int) – Number of input channels.

  • out_channels (int) – Number of output channels.

  • **kwargs – Additional keyword arguments.

forward(image)[source]#

Performs forward pass of MultiDomainConv2d.

Parameters:

image (Tensor) – Input image tensor.

Return type:

Tensor

Returns:

Output tensor.

class direct.nn.multidomainnet.multidomain.MultiDomainConvTranspose2d(forward_operator, backward_operator, in_channels, out_channels, **kwargs)[source]#

Bases: Module

__init__(forward_operator, backward_operator, in_channels, out_channels, **kwargs)[source]#

Inits MultiDomainConvTranspose2d.

Parameters:
  • forward_operator (Callable) – Forward Operator.

  • Operator. (Backward)

  • backward_operator (Callable) – Callable

  • Operator.

  • in_channels (int) – int

  • channels. (Number of output)

  • out_channels (int) – int

  • channels.

forward(image)[source]#

Performs forward pass of of MultiDomainConvTranspose2d.

Parameters:

image (Tensor) – torch.Tensor

Return type:

Tensor

Returns:

torch.Tensor

class direct.nn.multidomainnet.multidomain.MultiDomainConvBlock(forward_operator, backward_operator, in_channels, out_channels, dropout_probability)[source]#

Bases: Module

A multi-domain convolutional block that consists of two multi-domain convolution layers each followed by instance normalization, LeakyReLU activation and dropout.

__init__(forward_operator, backward_operator, in_channels, out_channels, dropout_probability)[source]#

Inits MultiDomainConvBlock.

Parameters:
  • forward_operator (Callable) – Callable

  • Operator. (Backward)

  • backward_operator (Callable) – Callable

  • Operator.

  • in_channels (int) – int

  • channels. (Number of output)

  • out_channels (int) – int

  • channels.

  • dropout_probability (float) – float

  • probability. (Dropout)

forward(_input)[source]#

Performs forward pass of of MultiDomainConvBlock.

Parameters:

_input (Tensor) – torch.Tensor

Return type:

Tensor

Returns:

torch.Tensor

__repr__()[source]#

Representation of MultiDomainConvBlock.

class direct.nn.multidomainnet.multidomain.TransposeMultiDomainConvBlock(forward_operator, backward_operator, in_channels, out_channels)[source]#

Bases: Module

A Transpose Convolutional Block that consists of one convolution transpose layers followed by instance normalization and LeakyReLU activation.

__init__(forward_operator, backward_operator, in_channels, out_channels)[source]#
Parameters:
  • in_channels (int) – int

  • channels. (Number of output)

  • out_channels (int) – int

  • channels.

forward(input_data)[source]#
Parameters:

input_data (Tensor) – torch.Tensor

Returns:

torch.Tensor

class direct.nn.multidomainnet.multidomain.MultiDomainUnet2d(forward_operator, backward_operator, in_channels, out_channels, num_filters, num_pool_layers, dropout_probability)[source]#

Bases: Module

Unet modification to be used with Multi-domain network as in AIRS Medical submission to the Fast MRI 2020 challenge.

__init__(forward_operator, backward_operator, in_channels, out_channels, num_filters, num_pool_layers, dropout_probability)[source]#
Parameters:
  • forward_operator (Callable) – Callable

  • Operator. (Backward)

  • backward_operator (Callable) – Callable

  • Operator.

  • in_channels (int) – int

  • u-net. (Number of output channels to the)

  • out_channels (int) – int

  • u-net.

  • num_filters (int) – int

  • layer. (Number of output channels of the first convolutional)

  • num_pool_layers (int) – int

  • layers (Number of down-sampling and up-sampling)

  • dropout_probability (float) – float

  • probability. (Dropout)

forward(input_data)[source]#
Parameters:

input_data (Tensor) – torch.Tensor

Returns:

torch.Tensor

direct.nn.multidomainnet.multidomainnet module#

class direct.nn.multidomainnet.multidomainnet.StandardizationLayer(coil_dim=1, channel_dim=-1)[source]#

Bases: Module

Multi-channel data standardization method. Inspired by AIRS model submission to the Fast MRI 2020 challenge. Given individual coil images \(\{x_i\}_{i=1}^{N_c}\) and sensitivity coil maps \(\{S_i\}_{i=1}^{N_c}\) it returns

\[[(x_{\text{sense}}, {x_{\text{res}}}_1), ..., (x_{\text{sense}}, {x_{\text{res}}}_{N_c})]\]

where \({x_{\text{res}}}_i = xi - S_i \times x_{\text{sense}}\) and \(x_{\text{sense}} = \sum_{i=1}^{N_c} {S_i}^{*} \times x_i\).

__init__(coil_dim=1, channel_dim=-1)[source]#

Inits StandardizationLayer.

Parameters:
  • coil_dim (int) – int

  • Default (Channel dimension.)

  • channel_dim (int) – int

  • Default – -1.

forward(coil_images, sensitivity_map)[source]#

Performs forward pass of StandardizationLayer.

Parameters:
  • coil_images (Tensor) – torch.Tensor

  • tensor. (Coil images)

  • sensitivity_map (Tensor) – torch.Tensor

  • maps. (Sensitivity)

Return type:

Tensor

Returns:

torch.Tensor

class direct.nn.multidomainnet.multidomainnet.MultiDomainNet(forward_operator, backward_operator, standardization=True, num_filters=16, num_pool_layers=4, dropout_probability=0.0, **kwargs)[source]#

Bases: Module

Feature-level multi-domain module.

Inspired by AIRS Medical submission to the Fast MRI 2020 challenge.

__init__(forward_operator, backward_operator, standardization=True, num_filters=16, num_pool_layers=4, dropout_probability=0.0, **kwargs)[source]#

Inits MultiDomainNet.

Parameters:
  • forward_operator (Callable) – Callable

  • Operator. (Backward)

  • backward_operator (Callable) – Callable

  • Operator.

  • standardization (bool) – bool

  • Default (If True standardization is used.) – True.

  • num_filters (int) – int

  • the (Dropout probability for) – class:MultiDomainUnet module. Default: 16.

  • num_pool_layers (int) – int

  • the – class:MultiDomainUnet module. Default: 4.

  • dropout_probability (float) – float

  • the – class:MultiDomainUnet module. Default: 0.0.

forward(masked_kspace, sensitivity_map)[source]#

Performs forward pass of MultiDomainNet.

Parameters:
  • masked_kspace (Tensor) – torch.Tensor

  • shape (Sensitivity map of)

  • sensitivity_map (Tensor) – torch.Tensor

  • shape

Returns:

torch.Tensor Multi-coil output image of shape (N, coil, height, width, complex=2).

Return type:

output_image

direct.nn.multidomainnet.multidomainnet_engine module#

class direct.nn.multidomainnet.multidomainnet_engine.MultiDomainNetEngine(cfg, model, device, forward_operator=None, backward_operator=None, mixed_precision=False, **models)[source]#

Bases: MRIModelEngine

Multi Domain Network Engine.

__init__(cfg, model, device, forward_operator=None, backward_operator=None, mixed_precision=False, **models)[source]#

Inits :class:`MultiDomainNetEngine.

forward_function(data)[source]#

This method performs the model’s forward method given data which contains all tensor inputs.

Must be implemented by child classes.

Return type:

Tuple[Tensor, None]

Module contents#