Algorithm requirements#
In this section we detail the constraints of each algorithm on the configuration and their differences.
Parent configuration#
The parent configuration is Configuration
and it is the same for all algorithms. It should not be used to train any of the algorithms as the child classes ensure coherence across the parameters.
Noise2Void family#
Noise2Void algorithms (N2V, N2V2, structN2V) are configured using N2VConfiguration
. It enforces the following constraints:
algorithm_config
: must be aN2VAlgorithm
algorithm_config.algorithm="n2v"
algorithm_config.loss="n2v"
algorithm_config.model
:- must be a UNet (
architecture="UNet"
) in_channels
andnum_classes
must be equal
- must be a UNet (
data_config
: must be aN2VDataConfiguration
data_config.transforms
: must containN2VManipulateModel
as the last transform
CARE and Noise2Noise#
The two algorithms are very similar and therefore their constraints are sensibly the same. They are configured using CAREConfiguration
and N2NConfiguration
respectively.
algorithm_config
: must be aCAREAlgorithm
(CARE) orN2NAlgorithm
(Noise2Noise)algorithm_config.algorithm
:care
(CARE) orn2n
(Noise2Noise)algorithm_config.loss
:mae
ormse
algorithm_config.model
: must be a UNet (architecture="UNet"
)data_config
: must be aDataConfiguration
data_config.transforms
: must not containN2VManipulateModel