Models¶
ResNet
¶
-
class
ResNet
(block, layers, num_classes=2, zero_init_residual=False, groups=1, width_per_group=64, replace_stride_with_dilation=None, norm_layer=None)[source]¶ Bases:
torch.nn.modules.module.Module
- ResNet model based on
- “Deep Residual Learning for Image Recognition”
Parameters: - block (nn.Module) – Basic block of the network (such as conv + bn + non-nonlinearity)
- layers (int list) – Number of blocks to stack (network depth) after each downsampling step.
- num_classes (int) – Number of GT classes.
- zero_init_residual (bool) – if True, zero-initialize the last BN in each residual branch,
- that the residual branch starts with zeros, and each residual block behaves like an identity. (so) –
- groups (int) – Number of parallel branches in the network, see “paper”
- width_per_group (int) – base width of the blocks
- replace_stride_with_dilation (tuple) – each element in the tuple indicates if we replace the 2x2 stride with a dilated convolution
- norm_layer (layer) – Custom normalization layer, if not provided BatchNorm2d is used
-
__init__
(block, layers, num_classes=2, zero_init_residual=False, groups=1, width_per_group=64, replace_stride_with_dilation=None, norm_layer=None)[source]¶ Initializes internal Module state, shared by both nn.Module and ScriptModule.
-
forward
(x)[source]¶ Defines the computation performed at every call.
Should be overridden by all subclasses.
Note
Although the recipe for forward pass needs to be defined within this function, one should call the
Module
instance afterwards instead of this since the former takes care of running the registered hooks while the latter silently ignores them.
DenseNet
¶
-
class
DenseNet
(growth_rate=32, block_config=(6, 12, 24, 16), num_init_features=64, bn_size=4, drop_rate=0, num_classes=2, memory_efficient=False)[source]¶ Bases:
torch.nn.modules.module.Module
Densenet-BC model class, based on “Densely Connected Convolutional Networks”
Parameters: - growth_rate (int) - how many filters to add each layer (k in paper) –
- block_config (list of 4 ints) –
- num_init_features (int) –
- bn_size (int) – (i.e. bn_size * k features in the bottleneck layer)
- drop_rate (float) –
- num_classes (int) –
- memory_efficient (bool) –
but slower. Default: False. See “paper”
-
__init__
(growth_rate=32, block_config=(6, 12, 24, 16), num_init_features=64, bn_size=4, drop_rate=0, num_classes=2, memory_efficient=False)[source]¶ Initializes internal Module state, shared by both nn.Module and ScriptModule.
-
forward
(x)[source]¶ Defines the computation performed at every call.
Should be overridden by all subclasses.
Note
Although the recipe for forward pass needs to be defined within this function, one should call the
Module
instance afterwards instead of this since the former takes care of running the registered hooks while the latter silently ignores them.
Unet
¶
-
class
Unet
(in_channel=1, out_channel=1, depth=3, drop_rate=0.4, bn_momentum=0.1, relu=False, **kwargs)[source]¶ Bases:
torch.nn.modules.module.Module
A reference U-Net model.
See also
Ronneberger, O., et al (2015). U-Net: Convolutional Networks for Biomedical Image Segmentation ArXiv link: https://arxiv.org/abs/1505.04597
Parameters: - in_channel (int) – Number of channels in the input image.
- out_channel (int) – Number of channels in the output image.
- depth (int) – Number of down convolutions minus bottom down convolution.
- drop_rate (float) – Probability of dropout.
- bn_momentum (float) – Batch normalization momentum.
- relu (bool) – If True, sets final activation to normalized ReLU (ReLU between 0 and 1).
- **kwargs –
Attributes: - encoder (Encoder) – U-Net encoder.
- decoder (Decoder) – U-net decoder.
-
__init__
(in_channel=1, out_channel=1, depth=3, drop_rate=0.4, bn_momentum=0.1, relu=False, **kwargs)[source]¶ Initializes internal Module state, shared by both nn.Module and ScriptModule.
-
forward
(x)[source]¶ Defines the computation performed at every call.
Should be overridden by all subclasses.
Note
Although the recipe for forward pass needs to be defined within this function, one should call the
Module
instance afterwards instead of this since the former takes care of running the registered hooks while the latter silently ignores them.
FiLMedUnet
¶
-
class
FiLMedUnet
(in_channel=1, out_channel=1, depth=3, drop_rate=0.4, bn_momentum=0.1, n_metadata=None, film_layers=None, **kwargs)[source]¶ Bases:
ivadomed.models.Unet
U-Net network containing FiLM layers to condition the model with another data type (i.e. not an image).
Parameters: - n_channel (int) – Number of channels in the input image.
- out_channel (int) – Number of channels in the output image.
- depth (int) – Number of down convolutions minus bottom down convolution.
- drop_rate (float) – Probability of dropout.
- bn_momentum (float) – Batch normalization momentum.
- n_metadata (dict) – FiLM metadata see ivadomed.loader.film for more details.
- film_layers (list) – List of 0 or 1 indicating on which layer FiLM is applied.
- **kwargs –
Attributes: - encoder (Encoder) – U-Net encoder.
- decoder (Decoder) – U-net decoder.
-
__init__
(in_channel=1, out_channel=1, depth=3, drop_rate=0.4, bn_momentum=0.1, n_metadata=None, film_layers=None, **kwargs)[source]¶ Initializes internal Module state, shared by both nn.Module and ScriptModule.
-
forward
(x, context=None)[source]¶ Defines the computation performed at every call.
Should be overridden by all subclasses.
Note
Although the recipe for forward pass needs to be defined within this function, one should call the
Module
instance afterwards instead of this since the former takes care of running the registered hooks while the latter silently ignores them.
HeMISUnet
¶
-
class
HeMISUnet
(contrasts, out_channel=1, depth=3, drop_rate=0.4, bn_momentum=0.1, **kwargs)[source]¶ Bases:
torch.nn.modules.module.Module
- A U-Net model inspired by HeMIS to deal with missing contrasts.
- It has as many encoders as contrasts but only one decoder.
- Skip connections are the concatenations of the means and var of all encoders skip connections.
Param: contrasts: list of all the possible contrasts. [‘T1’, ‘T2’, ‘T2S’, ‘F’]
See also
Havaei, M., Guizard, N., Chapados, N., Bengio, Y.: Hemis: Hetero-modal image segmentation. ArXiv link: https://arxiv.org/abs/1607.05194
Reuben Dorent and Samuel Joutard and Marc Modat and Sébastien Ourselin and Tom Vercauteren Hetero-Modal Variational Encoder-Decoder for Joint Modality Completion and Segmentation ArXiv link: https://arxiv.org/abs/1907.11150
Parameters: - contrasts (list) – List of contrasts.
- out_channel (int) – Number of output channels.
- depth (int) – Number of down convolutions minus bottom down convolution.
- drop_rate (float) – Probability of dropout.
- bn_momentum (float) – Batch normalization momentum.
- **kwargs –
Attributes: - depth (int) – Number of down convolutions minus bottom down convolution.
- contrasts (list) – List of contrasts.
- Encoder_mod (ModuleDict) – Contains encoder for each modality.
- decoder (Decoder) – U-Net decoder.
UNet3D
¶
-
class
UNet3D
(in_channel, out_channel, n_filters=16, attention=False, drop_rate=0.6, bn_momentum=0.1, relu=False, **kwargs)[source]¶ Bases:
torch.nn.modules.module.Module
Code from the following repository: https://github.com/pykao/Modified-3D-UNet-Pytorch The main differences with the original UNet resides in the use of LeakyReLU instead of ReLU, InstanceNormalisation instead of BatchNorm due to small batch size in 3D and the addition of segmentation layers in the decoder.
If attention=True, attention gates are added in the decoder to help focus attention on important features for a given task. Code related to the attentions gates is inspired from: https://github.com/ozan-oktay/Attention-Gated-Networks
Parameters: - in_channel (int) – Number of channels in the input image.
- out_channel (int) – Number of channels in the output image.
- n_filters (int) – Number of base filters in the U-Net.
- attention (bool) – Boolean indicating whether the attention module is on or not.
- drop_rate (float) – Probability of dropout.
- bn_momentum (float) – Batch normalization momentum.
- relu (bool) – If True, sets final activation to normalized ReLU (relu between 0 and 1).
- **kwargs –
Attributes: - in_channels (int) – Number of channels in the input image.
- n_classes (int) – Number of channels in the output image.
- base_n_filter (int) – Number of base filters in the U-Net.
- attention (bool) – Boolean indicating whether the attention module is on or not.
- momentum (float) – Batch normalization momentum.
- relu_activation (bool) – If True, sets final activation to normalized ReLU (ReLU between 0 and 1).
Note: All layers are defined as attributes and used in the forward method.
-
__init__
(in_channel, out_channel, n_filters=16, attention=False, drop_rate=0.6, bn_momentum=0.1, relu=False, **kwargs)[source]¶ Initializes internal Module state, shared by both nn.Module and ScriptModule.
-
forward
(x)[source]¶ Defines the computation performed at every call.
Should be overridden by all subclasses.
Note
Although the recipe for forward pass needs to be defined within this function, one should call the
Module
instance afterwards instead of this since the former takes care of running the registered hooks while the latter silently ignores them.
Countception
¶
-
class
Countception
(in_channel=3, out_channel=1, use_logits=False, logits_per_output=12, name='CC', **kwargs)[source]¶ Bases:
torch.nn.modules.module.Module
Countception model. Fully convolutional model using inception module and used for keypoints detection. The inception model extracts several patches within each image. Every pixel is therefore processed by the network several times, allowing to average multiple predictions and minimize false negatives.
See also
Cohen JP et al. “Count-ception: Counting by fully convolutional redundant counting.” Proceedings of the IEEE International Conference on Computer Vision Workshops. 2017.
Parameters: - in_channel (int) – number of channels on input image
- out_channel (int) – number of channels on output image
- use_logits (bool) – boolean to change output
- logits_per_output (int) – number of outputs of final convolution which will multiplied by the number of channels
- name (str) – model’s name used for call in configuration file.
-
__init__
(in_channel=3, out_channel=1, use_logits=False, logits_per_output=12, name='CC', **kwargs)[source]¶ Initializes internal Module state, shared by both nn.Module and ScriptModule.
-
forward
(x)[source]¶ Defines the computation performed at every call.
Should be overridden by all subclasses.
Note
Although the recipe for forward pass needs to be defined within this function, one should call the
Module
instance afterwards instead of this since the former takes care of running the registered hooks while the latter silently ignores them.