#include <elxFiniteDifferenceGradientDescent.h>
An optimizer based on the itk::FiniteDifferenceGradientDescentOptimizer.
This class is a wrap around the FiniteDifferenceGradientDescentOptimizer class. It takes care of setting parameters and printing progress information. For more information about the optimisation method, please read the documentation of the FiniteDifferenceGradientDescentOptimizer class.
Watch out for this optimizer; it may be very slow....
The parameters used in this class are:
Optimizer: Select this optimizer as follows:
(Optimizer "FiniteDifferenceGradientDescent")
MaximumNumberOfIterations: The maximum number of iterations in each resolution.
example: (MaximumNumberOfIterations 100 100 50)
Default value: 500.
SP_a: The gain at each iteration is defined by
.
SP_a can be defined for each resolution.
example: (SP_a 3200.0 3200.0 1600.0)
The default value is 400.0. Tuning this variable for you specific problem is recommended.
SP_A: The gain at each iteration is defined by
.
SP_A can be defined for each resolution.
example: (SP_A 50.0 50.0 100.0)
The default/recommended value is 50.0.
SP_alpha: The gain at each iteration is defined by
.
SP_alpha can be defined for each resolution.
example: (SP_alpha 0.602 0.602 0.602)
The default/recommended value is 0.602.
SP_c: The perturbation step size at each iteration is defined by
.
SP_c can be defined for each resolution.
example: (SP_c 2.0 1.0 1.0)
The default value is 1.0.
SP_gamma: The perturbation step size at each iteration is defined by
.
SP_gamma can be defined for each resolution.
example: (SP_gamma 0.101 0.101 0.101)
The default/recommended value is 0.101.
ShowMetricValues: Defines whether to compute/show the metric value in each iteration.
This flag can NOT be defined for each resolution.
example: (ShowMetricValues "true" )
Default value: "false". Note that turning this flag on increases computation time.
Definition at line 80 of file elxFiniteDifferenceGradientDescent.h.
Static Public Member Functions | |
static Pointer | New () |
Static Public Member Functions inherited from itk::FiniteDifferenceGradientDescentOptimizer | |
static Pointer | New () |
Static Public Member Functions inherited from itk::ScaledSingleValuedNonLinearOptimizer | |
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 | |
FiniteDifferenceGradientDescent () | |
~FiniteDifferenceGradientDescent () override=default | |
Protected Member Functions inherited from itk::FiniteDifferenceGradientDescentOptimizer | |
virtual double | Compute_a (unsigned long k) const |
virtual double | Compute_c (unsigned long k) const |
FiniteDifferenceGradientDescentOptimizer () | |
void | PrintSelf (std::ostream &os, Indent indent) const override |
~FiniteDifferenceGradientDescentOptimizer () override=default | |
Protected Member Functions inherited from itk::ScaledSingleValuedNonLinearOptimizer | |
virtual void | GetScaledDerivative (const ParametersType ¶meters, DerivativeType &derivative) const |
virtual MeasureType | GetScaledValue (const ParametersType ¶meters) const |
virtual void | GetScaledValueAndDerivative (const ParametersType ¶meters, MeasureType &value, DerivativeType &derivative) const |
void | PrintSelf (std::ostream &os, Indent indent) const override |
ScaledSingleValuedNonLinearOptimizer () | |
void | SetCurrentPosition (const ParametersType ¶m) override |
virtual void | SetScaledCurrentPosition (const ParametersType ¶meters) |
~ScaledSingleValuedNonLinearOptimizer () 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 |
Protected Attributes | |
bool | m_ShowMetricValues |
Protected Attributes inherited from itk::FiniteDifferenceGradientDescentOptimizer | |
bool | m_ComputeCurrentValue { false } |
DerivativeType | m_Gradient {} |
double | m_GradientMagnitude { 0.0 } |
double | m_LearningRate { 0.0 } |
Protected Attributes inherited from itk::ScaledSingleValuedNonLinearOptimizer | |
ScaledCostFunctionPointer | m_ScaledCostFunction {} |
ParametersType | m_ScaledCurrentPosition {} |
Protected Attributes inherited from elastix::BaseComponentSE< TElastix > | |
Configuration::ConstPointer | m_Configuration {} |
itk::WeakPointer< TElastix > | m_Elastix {} |
RegistrationType * | m_Registration {} |
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) |
using elastix::FiniteDifferenceGradientDescent< TElastix >::ConstPointer = itk::SmartPointer<const Self> |
Definition at line 92 of file elxFiniteDifferenceGradientDescent.h.
using elastix::FiniteDifferenceGradientDescent< TElastix >::ITKBaseType = typename Superclass2::ITKBaseType |
Definition at line 114 of file elxFiniteDifferenceGradientDescent.h.
using elastix::FiniteDifferenceGradientDescent< TElastix >::Pointer = itk::SmartPointer<Self> |
Definition at line 91 of file elxFiniteDifferenceGradientDescent.h.
using elastix::FiniteDifferenceGradientDescent< TElastix >::Self = FiniteDifferenceGradientDescent |
Standard ITK.
Definition at line 88 of file elxFiniteDifferenceGradientDescent.h.
using elastix::FiniteDifferenceGradientDescent< TElastix >::Superclass1 = FiniteDifferenceGradientDescentOptimizer |
Definition at line 89 of file elxFiniteDifferenceGradientDescent.h.
using elastix::FiniteDifferenceGradientDescent< TElastix >::Superclass2 = OptimizerBase<TElastix> |
Definition at line 90 of file elxFiniteDifferenceGradientDescent.h.
enum itk::FiniteDifferenceGradientDescentOptimizer::StopConditionType |
Codes of stopping conditions
Definition at line 73 of file itkFiniteDifferenceGradientDescentOptimizer.h.
|
protected |
|
overrideprotecteddefault |
|
overridevirtual |
Reimplemented from elastix::BaseComponent.
|
overridevirtual |
Reimplemented from elastix::BaseComponent.
|
overridevirtual |
Reimplemented from elastix::BaseComponent.
|
overridevirtual |
Reimplemented from elastix::BaseComponent.
|
overridevirtual |
Methods that take care of setting parameters and printing progress information.
Reimplemented from elastix::BaseComponent.
elastix::FiniteDifferenceGradientDescent< TElastix >::elxClassNameMacro | ( | "FiniteDifferenceGradientDescent< TElastix >" | ) |
Name of this class. Use this name in the parameter file to select this specific optimizer.
example: (Optimizer "FiniteDifferenceGradientDescent")
|
virtual |
Run-time type information (and related methods).
Reimplemented from itk::FiniteDifferenceGradientDescentOptimizer.
elastix::FiniteDifferenceGradientDescent< TElastix >::ITK_DISALLOW_COPY_AND_MOVE | ( | FiniteDifferenceGradientDescent< TElastix > | ) |
|
static |
Method for creation through the object factory.
|
override |
Check if any scales are set, and set the UseScales flag on or off; after that call the superclass' implementation
|
private |
Definition at line 147 of file elxFiniteDifferenceGradientDescent.h.
|
protected |
Definition at line 144 of file elxFiniteDifferenceGradientDescent.h.
Generated on 2024-07-17 for elastix by 1.11.0 (9b424b03c9833626cd435af22a444888fbbb192d) |