Skip to content

Algorithms

Source

Algorithm configurations.

CAREAlgorithm

Bases: UNetBasedAlgorithm

CARE algorithm configuration.

Attributes:

Name Type Description
algorithm care

CARE Algorithm name.

loss {mae, mse}

CARE-compatible loss function.

algorithm = 'care' class-attribute instance-attribute

CARE Algorithm name.

loss = 'mae' class-attribute instance-attribute

CARE-compatible loss function.

lr_scheduler = LrSchedulerConfig() class-attribute instance-attribute

Learning rate scheduler to use, defined in SupportedLrScheduler.

model instance-attribute

UNet without a final activation function and without the n2v2 modifications.

optimizer = OptimizerConfig() class-attribute instance-attribute

Optimizer to use, defined in SupportedOptimizer.

get_algorithm_citations()

Return a list of citation entries of the current algorithm.

This is used to generate the model description for the BioImage Model Zoo.

Returns:

Type Description
List[CiteEntry]

List of citation entries.

get_algorithm_description()

Get the algorithm description.

Returns:

Type Description
str

Algorithm description.

get_algorithm_friendly_name()

Get the algorithm friendly name.

Returns:

Type Description
str

Friendly name of the algorithm.

get_algorithm_keywords()

Get algorithm keywords.

Returns:

Type Description
list[str]

List of keywords.

get_algorithm_references()

Get the algorithm references.

This is used to generate the README of the BioImage Model Zoo export.

Returns:

Type Description
str

Algorithm references.

get_compatible_algorithms() classmethod

Get the list of compatible algorithms.

Returns:

Type Description
list of str

List of compatible algorithms.

is_supervised() classmethod

Return whether the algorithm is supervised.

Returns:

Type Description
bool

Whether the algorithm is supervised.

HDNAlgorithm

Bases: VAEBasedAlgorithm

HDN algorithm configuration.

optimizer = OptimizerConfig() class-attribute instance-attribute

Optimizer to use, defined in SupportedOptimizer.

algorithm_cross_validation()

Validate the algorithm model based on algorithm.

Returns:

Type Description
Self

The validated model.

get_algorithm_citations()

Return a list of citation entries of the current algorithm.

This is used to generate the model description for the BioImage Model Zoo.

Returns:

Type Description
List[CiteEntry]

List of citation entries.

get_algorithm_description()

Get the algorithm description.

Returns:

Type Description
str

Algorithm description.

get_algorithm_friendly_name()

Get the algorithm friendly name.

Returns:

Type Description
str

Friendly name of the algorithm.

get_algorithm_keywords()

Get algorithm keywords.

Returns:

Type Description
list[str]

List of keywords.

get_algorithm_references()

Get the algorithm references.

This is used to generate the README of the BioImage Model Zoo export.

Returns:

Type Description
str

Algorithm references.

get_compatible_algorithms() classmethod

Get the list of compatible algorithms.

Returns:

Type Description
list of str

List of compatible algorithms.

output_channels_validation()

Validate the consistency between number of out channels and noise models.

Returns:

Type Description
Self

The validated model.

predict_logvar_validation()

Validate the consistency of predict_logvar throughout the model.

Returns:

Type Description
Self

The validated model.

MicroSplitAlgorithm

Bases: VAEBasedAlgorithm

MicroSplit algorithm configuration.

optimizer = OptimizerConfig() class-attribute instance-attribute

Optimizer to use, defined in SupportedOptimizer.

algorithm_cross_validation()

Validate the algorithm model based on algorithm.

Returns:

Type Description
Self

The validated model.

get_algorithm_citations()

Return a list of citation entries of the current algorithm.

This is used to generate the model description for the BioImage Model Zoo.

Returns:

Type Description
List[CiteEntry]

List of citation entries.

get_algorithm_description()

Get the algorithm description.

Returns:

Type Description
str

Algorithm description.

get_algorithm_friendly_name()

Get the algorithm friendly name.

Returns:

Type Description
str

Friendly name of the algorithm.

get_algorithm_keywords()

Get algorithm keywords.

Returns:

Type Description
list[str]

List of keywords.

get_algorithm_references()

Get the algorithm references.

This is used to generate the README of the BioImage Model Zoo export.

Returns:

Type Description
str

Algorithm references.

get_compatible_algorithms() classmethod

Get the list of compatible algorithms.

Returns:

Type Description
list of str

List of compatible algorithms.

output_channels_validation()

Validate the consistency between number of out channels and noise models.

Returns:

Type Description
Self

The validated model.

predict_logvar_validation()

Validate the consistency of predict_logvar throughout the model.

Returns:

Type Description
Self

The validated model.

N2NAlgorithm

Bases: UNetBasedAlgorithm

Noise2Noise Algorithm configuration.

algorithm = 'n2n' class-attribute instance-attribute

N2N Algorithm name.

loss = 'mae' class-attribute instance-attribute

N2N-compatible loss function.

lr_scheduler = LrSchedulerConfig() class-attribute instance-attribute

Learning rate scheduler to use, defined in SupportedLrScheduler.

model instance-attribute

UNet without a final activation function and without the n2v2 modifications.

optimizer = OptimizerConfig() class-attribute instance-attribute

Optimizer to use, defined in SupportedOptimizer.

get_algorithm_citations()

Return a list of citation entries of the current algorithm.

This is used to generate the model description for the BioImage Model Zoo.

Returns:

Type Description
List[CiteEntry]

List of citation entries.

get_algorithm_description()

Get the algorithm description.

Returns:

Type Description
str

Algorithm description.

get_algorithm_friendly_name()

Get the algorithm friendly name.

Returns:

Type Description
str

Friendly name of the algorithm.

get_algorithm_keywords()

Get algorithm keywords.

Returns:

Type Description
list[str]

List of keywords.

get_algorithm_references()

Get the algorithm references.

This is used to generate the README of the BioImage Model Zoo export.

Returns:

Type Description
str

Algorithm references.

get_compatible_algorithms() classmethod

Get the list of compatible algorithms.

Returns:

Type Description
list of str

List of compatible algorithms.

is_supervised() classmethod

Return whether the algorithm is supervised.

Returns:

Type Description
bool

Whether the algorithm is supervised.

N2VAlgorithm

Bases: UNetBasedAlgorithm

N2V Algorithm configuration.

algorithm = 'n2v' class-attribute instance-attribute

N2V Algorithm name.

loss = 'n2v' class-attribute instance-attribute

N2V loss function.

lr_scheduler = LrSchedulerConfig() class-attribute instance-attribute

Learning rate scheduler to use, defined in SupportedLrScheduler.

monitor_metric = 'val_loss' class-attribute instance-attribute

Metric to monitor for the learning rate scheduler.

optimizer = OptimizerConfig() class-attribute instance-attribute

Optimizer to use, defined in SupportedOptimizer.

get_algorithm_citations()

Return a list of citation entries of the current algorithm.

This is used to generate the model description for the BioImage Model Zoo.

Returns:

Type Description
List[CiteEntry]

List of citation entries.

get_algorithm_description()

Return a description of the algorithm.

This method is used to generate the README of the BioImage Model Zoo export.

Returns:

Type Description
str

Description of the algorithm.

get_algorithm_friendly_name()

Get the friendly name of the algorithm.

Returns:

Type Description
str

Friendly name.

get_algorithm_keywords()

Get algorithm keywords.

Returns:

Type Description
list[str]

List of keywords.

get_algorithm_references()

Get the algorithm references.

This is used to generate the README of the BioImage Model Zoo export.

Returns:

Type Description
str

Algorithm references.

get_compatible_algorithms() classmethod

Get the list of compatible algorithms.

Returns:

Type Description
list of str

List of compatible algorithms.

is_struct_n2v()

Check if the configuration is using structN2V.

Returns:

Type Description
bool

Whether the configuration is using structN2V.

is_supervised() classmethod

Return whether the algorithm is supervised.

Returns:

Type Description
bool

Whether the algorithm is supervised.

set_n2v2(use_n2v2)

Set the configuration to use N2V2 or the vanilla Noise2Void.

This method ensures that N2V2 is set correctly and remain coherent, as opposed to setting the different parameters individually.

Parameters:

Name Type Description Default
use_n2v2 bool

Whether to use N2V2.

required

validate_n2v2()

Validate that the N2V2 strategy and models are set correctly.

Returns:

Type Description
Self

The validateed configuration.

Raises:

Type Description
ValueError

If N2V2 is used with the wrong pixel manipulation strategy.

PN2VAlgorithm

Bases: UNetBasedAlgorithm

PN2V Algorithm configuration.

algorithm = 'pn2v' class-attribute instance-attribute

PN2V Algorithm name.

loss = 'pn2v' class-attribute instance-attribute

PN2V loss function (uses N2V loss with noise model).

lr_scheduler = LrSchedulerConfig() class-attribute instance-attribute

Learning rate scheduler to use, defined in SupportedLrScheduler.

noise_model instance-attribute

Noise model configuration for probabilistic denoising.

optimizer = OptimizerConfig() class-attribute instance-attribute

Optimizer to use, defined in SupportedOptimizer.

get_algorithm_citations()

Return a list of citation entries of the current algorithm.

This is used to generate the model description for the BioImage Model Zoo.

Returns:

Type Description
List[CiteEntry]

List of citation entries.

get_algorithm_description()

Return a description of the algorithm.

This method is used to generate the README of the BioImage Model Zoo export.

Returns:

Type Description
str

Description of the algorithm.

get_algorithm_friendly_name()

Get the friendly name of the algorithm.

Returns:

Type Description
str

Friendly name.

get_algorithm_keywords()

Get algorithm keywords.

Returns:

Type Description
list[str]

List of keywords.

get_algorithm_references()

Get the algorithm references.

This is used to generate the README of the BioImage Model Zoo export.

Returns:

Type Description
str

Algorithm references.

get_compatible_algorithms() classmethod

Get the list of compatible algorithms.

Returns:

Type Description
list of str

List of compatible algorithms.

is_struct_n2v()

Check if the configuration is using structPN2V.

Returns:

Type Description
bool

Whether the configuration is using structPN2V.

set_n2v2(use_n2v2)

Set the configuration to use PN2V2 or the vanilla Probabilistic Noise2Void.

This method ensures that PN2V2 is set correctly and remain coherent, as opposed to setting the different parameters individually.

Parameters:

Name Type Description Default
use_n2v2 bool

Whether to use PN2V2.

required

validate_n2v2()

Validate that the N2V2 strategy and models are set correctly.

Returns:

Type Description
Self

The validated configuration.

Raises:

Type Description
ValueError

If N2V2 is used with the wrong pixel manipulation strategy.

UNetBasedAlgorithm

Bases: BaseModel

General UNet-based algorithm configuration.

This Pydantic model validates the parameters governing the components of the training algorithm: which algorithm, loss function, model architecture, optimizer, and learning rate scheduler to use.

Currently, we only support N2V, CARE, N2N, and PN2V algorithms. In order to train these algorithms, use the corresponding configuration child classes (e.g. N2VAlgorithm) to ensure coherent parameters (e.g. specific losses).

Attributes:

Name Type Description
algorithm {n2v, care, n2n, pn2v}

Algorithm to use.

loss {n2v, mae, mse}

Loss function to use.

model UNetConfig

Model architecture to use.

optimizer (OptimizerConfig, optional)

Optimizer to use.

lr_scheduler (LrSchedulerConfig, optional)

Learning rate scheduler to use.

Raises:

Type Description
ValueError

Algorithm parameter type validation errors.

ValueError

If the algorithm, loss and model are not compatible.

algorithm instance-attribute

Algorithm name, as defined in SupportedAlgorithm.

loss instance-attribute

Loss function to use, as defined in SupportedLoss.

lr_scheduler = LrSchedulerConfig() class-attribute instance-attribute

Learning rate scheduler to use, defined in SupportedLrScheduler.

model instance-attribute

UNet model configuration.

optimizer = OptimizerConfig() class-attribute instance-attribute

Optimizer to use, defined in SupportedOptimizer.

get_compatible_algorithms() classmethod

Get the list of compatible algorithms.

Returns:

Type Description
list of str

List of compatible algorithms.

VAEBasedAlgorithm

Bases: BaseModel

VAE-based algorithm configuration.

TODO

Examples:

TODO add once finalized

optimizer = OptimizerConfig() class-attribute instance-attribute

Optimizer to use, defined in SupportedOptimizer.

algorithm_cross_validation()

Validate the algorithm model based on algorithm.

Returns:

Type Description
Self

The validated model.

get_compatible_algorithms() classmethod

Get the list of compatible algorithms.

Returns:

Type Description
list of str

List of compatible algorithms.

output_channels_validation()

Validate the consistency between number of out channels and noise models.

Returns:

Type Description
Self

The validated model.

predict_logvar_validation()

Validate the consistency of predict_logvar throughout the model.

Returns:

Type Description
Self

The validated model.