#include <elxRSGDEachParameterApart.h>
An optimizer based on gradient descent.
The underlying itk class is almost a copy of the normal RegularStepGradientDescent. The difference is that each parameter has its own step length, whereas the normal RSGD has one step length that is used for all parameters.
This could cause inaccuracies, if, for example, parameter 1, 2 and 3 are already close to the optimum, but parameter 4 not yet. The average stepsize is halved then, so parameter 4 will not have time to reach its optimum (in a worst case scenario).
The RSGDEachParameterApart stops only if ALL steplenghts are smaller than the MinimumStepSize given in the parameter file!
The elastix shell class (so, this class...), is a copy of the elxRegularStepGradientDescent, so the parameters in the parameter file, the output etc are similar.
The parameters used in this class are:
Optimizer: Select this optimizer as follows:
(Optimizer "RSGDEachParameterApart")
MaximumNumberOfIterations: the maximum number of iterations in each resolution.
example: (MaximumNumberOfIterations 100 100 50)
Default value: 100.
MinimumGradientMagnitude: stopping criterion. If the magnitude of the derivative of the cost function is below this value, optimisation is stopped.
example: (MinimumGradientMagnitude 0.0001 0.0001 0.001)
Default value: 1e-8.
MinimumStepLength: stopping criterion. If the steplength is below this value, optimisation is stopped.
example: (MinimumStepLength 1.0 0.5 0.1)
Default value: 0.5 / 2^resolutionlevel
MaximumStepLength: the starting steplength.
example: (MaxiumStepLength 16.0 8.0 4.0)
Default value: 16 / 2^resolutionlevel.
Definition at line 72 of file elxRSGDEachParameterApart.h.
Static Public Member Functions | |
static Pointer | New () |
Static Public Member Functions inherited from itk::RSGDEachParameterApartOptimizer | |
static Pointer | New () |
Static Public Member Functions inherited from itk::RSGDEachParameterApartBaseOptimizer | |
static Pointer | New () |
Static Public Member Functions inherited from elastix::BaseComponent | |
template<typename TBaseComponent > | |
static auto | AsITKBaseType (TBaseComponent *const baseComponent) -> decltype(baseComponent->GetAsITKBaseType()) |
static void | InitializeElastixExecutable () |
static bool | IsElastixLibrary () |
Protected Member Functions | |
RSGDEachParameterApart ()=default | |
~RSGDEachParameterApart () override=default | |
Protected Member Functions inherited from itk::RSGDEachParameterApartOptimizer | |
RSGDEachParameterApartOptimizer ()=default | |
void | StepAlongGradient (const DerivativeType &factor, const DerivativeType &transformedGradient) override |
~RSGDEachParameterApartOptimizer () override=default | |
Protected Member Functions inherited from itk::RSGDEachParameterApartBaseOptimizer | |
virtual void | AdvanceOneStep () |
void | PrintSelf (std::ostream &os, Indent indent) const override |
RSGDEachParameterApartBaseOptimizer () | |
~RSGDEachParameterApartBaseOptimizer () override=default | |
Protected Member Functions inherited from elastix::OptimizerBase< TElastix > | |
virtual bool | GetNewSamplesEveryIteration () const |
OptimizerBase ()=default | |
virtual void | SelectNewSamples () |
~OptimizerBase () override=default | |
Protected Member Functions inherited from elastix::BaseComponentSE< TElastix > | |
BaseComponentSE ()=default | |
~BaseComponentSE () override=default | |
Protected Member Functions inherited from elastix::BaseComponent | |
BaseComponent ()=default | |
virtual | ~BaseComponent ()=default |
Private Attributes | |
elxOverrideGetSelfMacro | |
Additional Inherited Members | |
Protected Types inherited from elastix::OptimizerBase< TElastix > | |
using | SettingsVectorType = typename std::vector<SettingsType> |
Static Protected Member Functions inherited from elastix::OptimizerBase< TElastix > | |
static void | PrintSettingsVector (const SettingsVectorType &settings) |
Protected Attributes inherited from elastix::BaseComponentSE< TElastix > | |
Configuration::ConstPointer | m_Configuration {} |
itk::WeakPointer< TElastix > | m_Elastix {} |
RegistrationType * | m_Registration {} |
using elastix::RSGDEachParameterApart< TElastix >::ConstPointer = itk::SmartPointer<const Self> |
Definition at line 84 of file elxRSGDEachParameterApart.h.
using itk::RSGDEachParameterApartOptimizer::CostFunctionPointer |
Definition at line 72 of file itkRSGDEachParameterApartOptimizer.h.
using elastix::RSGDEachParameterApart< TElastix >::ITKBaseType = typename Superclass2::ITKBaseType |
Definition at line 105 of file elxRSGDEachParameterApart.h.
using elastix::RSGDEachParameterApart< TElastix >::Pointer = itk::SmartPointer<Self> |
Definition at line 83 of file elxRSGDEachParameterApart.h.
using elastix::RSGDEachParameterApart< TElastix >::Self = RSGDEachParameterApart |
Standard ITK.
Definition at line 80 of file elxRSGDEachParameterApart.h.
using elastix::RSGDEachParameterApart< TElastix >::Superclass1 = RSGDEachParameterApartOptimizer |
Definition at line 81 of file elxRSGDEachParameterApart.h.
using elastix::RSGDEachParameterApart< TElastix >::Superclass2 = OptimizerBase<TElastix> |
Definition at line 82 of file elxRSGDEachParameterApart.h.
|
protecteddefault |
|
overrideprotecteddefault |
|
overridevirtual |
Reimplemented from elastix::BaseComponent.
|
overridevirtual |
Reimplemented from elastix::BaseComponent.
|
overridevirtual |
Reimplemented from elastix::BaseComponent.
|
overridevirtual |
Reimplemented from elastix::BaseComponent.
|
overridevirtual |
Methods that have to be present everywhere.
Reimplemented from elastix::BaseComponent.
elastix::RSGDEachParameterApart< TElastix >::elxClassNameMacro | ( | "RSGDEachParameterApart< TElastix >" | ) |
Name of this class. Use this name in the parameter file to select this specific optimizer.
example: (Optimizer "RSGDEachParameterApart")
|
virtual |
Run-time type information (and related methods).
Reimplemented from itk::RSGDEachParameterApartOptimizer.
elastix::RSGDEachParameterApart< TElastix >::ITK_DISALLOW_COPY_AND_MOVE | ( | RSGDEachParameterApart< TElastix > | ) |
|
static |
Method for creation through the object factory.
|
override |
Override the SetInitialPosition. Override the implementation in itkOptimizer.h, to ensure that the scales array and the parameters array have the same size.
|
private |
Definition at line 138 of file elxRSGDEachParameterApart.h.
Generated on 2024-07-17 for elastix by 1.11.0 (9b424b03c9833626cd435af22a444888fbbb192d) |