Loading...
Searching...
No Matches
elastix::RegularStepGradientDescent< TElastix > Class Template Reference
Components » Optimizers

`#include <elxRegularStepGradientDescent.h>`

## Detailed Description

template<class TElastix>
class elastix::RegularStepGradientDescent< TElastix >

An optimizer based on gradient descent...

This optimizer is a wrap around the itk::RegularStepGradientDescentOptimizer. This wrap-around class takes care of setting parameters, and printing progress information. For detailed information about the optimisation method, please read the documentation of the itkRegularStepGradientDescentOptimizer (in the ITK-manual).

The parameters used in this class are:

Parameters

  Optimizer: Select this optimizer as follows:
  (Optimizer "RegularStepGradientDescent")

  MaximumNumberOfIterations: the maximum number of iterations in each resolution.
  example: (MaximumNumberOfIterations 100 100 50)
  Default value: 500.

  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: (MaximumStepLength 16.0 8.0 4.0)
  Default value: 16 / 2^resolutionlevel.

  RelaxationFactor: the factor with which the steplength is multiplied, if the optimiser notices that a smaller steplength is needed.
  example: (RelaxationFactor 0.5 0.5 0.8 ).
  Default/recommended value: 0.5.

See also
  ImprovedRegularStepGradientDescentOptimizer

Definition at line 65 of file elxRegularStepGradientDescent.h.

Inheritance diagram for elastix::RegularStepGradientDescent< TElastix >:
[legend]

## Public Types

using | ConstPointer = itk::SmartPointer<const Self>
using | ITKBaseType = typename Superclass2::ITKBaseType
using | Pointer = itk::SmartPointer<Self>
using | Self = RegularStepGradientDescent
using | Superclass1 = RegularStepGradientDescentOptimizer
using | Superclass2 = OptimizerBase<TElastix>
Public Types inherited from elastix::OptimizerBase< TElastix >
using | ElastixType
using | ITKBaseType = itk::Optimizer
using | ParametersType = typename ITKBaseType::ParametersType
using | RegistrationType
using | Self = OptimizerBase
using | Superclass = BaseComponentSE<TElastix>
Public Types inherited from elastix::BaseComponentSE< TElastix >
using | ElastixType = TElastix
using | RegistrationType = typename ElastixType::RegistrationBaseType
using | Self = BaseComponentSE
using | Superclass = BaseComponent

## Public Member Functions

void | AfterEachIteration () override
void | AfterEachResolution () override
void | AfterRegistration () override
void | BeforeEachResolution () override
void | BeforeRegistration () override
| elxClassNameMacro ("RegularStepGradientDescent")
virtual const char * | GetClassName () const
| ITK_DISALLOW_COPY_AND_MOVE (RegularStepGradientDescent)
void | SetInitialPosition (const ParametersType &param) override
Public Member Functions inherited from elastix::OptimizerBase< TElastix >
void | AfterRegistrationBase () override
void | BeforeEachResolutionBase () override
ITKBaseType * | GetAsITKBaseType ()
const ITKBaseType * | GetAsITKBaseType () const
| ITK_DISALLOW_COPY_AND_MOVE (OptimizerBase)
virtual void | SetCurrentPositionPublic (const ParametersType &param)
virtual void | SetSinusScales (double amplitude, double frequency, unsigned long numberOfParameters)
Public Member Functions inherited from elastix::BaseComponentSE< TElastix >
void | AddTargetCellToIterationInfo (const char *const name)
const Configuration * | GetConfiguration () const
ElastixType * | GetElastix () const
auto & | GetIterationInfoAt (const char *const name)
RegistrationType * | GetRegistration () const
| ITK_DISALLOW_COPY_AND_MOVE (BaseComponentSE)
void | RemoveTargetCellFromIterationInfo (const char *const name)
void | SetConfiguration (const Configuration *_arg)
void | SetElastix (ElastixType *_arg)
Public Member Functions inherited from elastix::BaseComponent
virtual void | AfterEachIterationBase ()
virtual void | AfterEachResolutionBase ()
virtual int | BeforeAll ()
virtual int | BeforeAllBase ()
virtual void | BeforeRegistrationBase ()
virtual const char * | elxGetClassName () const
const char * | GetComponentLabel () const
| ITK_DISALLOW_COPY_AND_MOVE (BaseComponent)
| itkTypeMacroNoParent (BaseComponent)
void | SetComponentLabel (const char *label, unsigned int idx)

## Static Public Member Functions

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

| RegularStepGradientDescent ()=default
| ~RegularStepGradientDescent () 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 {}

## Member Typedef Documentation

## ConstPointer

template<class TElastix>

using elastix::RegularStepGradientDescent< TElastix >::ConstPointer = itk::SmartPointer<const Self>

Definition at line 77 of file elxRegularStepGradientDescent.h.

## ITKBaseType

template<class TElastix>

using elastix::RegularStepGradientDescent< TElastix >::ITKBaseType = typename Superclass2::ITKBaseType

Definition at line 98 of file elxRegularStepGradientDescent.h.

## Pointer

template<class TElastix>

using elastix::RegularStepGradientDescent< TElastix >::Pointer = itk::SmartPointer<Self>

Definition at line 76 of file elxRegularStepGradientDescent.h.

## Self

template<class TElastix>

using elastix::RegularStepGradientDescent< TElastix >::Self = RegularStepGradientDescent

Standard ITK.

Definition at line 73 of file elxRegularStepGradientDescent.h.

## Superclass1

template<class TElastix>

using elastix::RegularStepGradientDescent< TElastix >::Superclass1 = RegularStepGradientDescentOptimizer

Definition at line 74 of file elxRegularStepGradientDescent.h.

## Superclass2

template<class TElastix>

using elastix::RegularStepGradientDescent< TElastix >::Superclass2 = OptimizerBase<TElastix>

Definition at line 75 of file elxRegularStepGradientDescent.h.

## Constructor & Destructor Documentation

## RegularStepGradientDescent()

template<class TElastix>

elastix::RegularStepGradientDescent< TElastix >::RegularStepGradientDescent | ( |  | ) |

protected default

## ~RegularStepGradientDescent()

template<class TElastix>

elastix::RegularStepGradientDescent< TElastix >::~RegularStepGradientDescent | ( |  | ) |

override protected default

## Member Function Documentation

## AfterEachIteration()

template<class TElastix>

void elastix::RegularStepGradientDescent< TElastix >::AfterEachIteration | ( |  | ) |

override virtual

Reimplemented from elastix::BaseComponent.

## AfterEachResolution()

template<class TElastix>

void elastix::RegularStepGradientDescent< TElastix >::AfterEachResolution | ( |  | ) |

override virtual

Reimplemented from elastix::BaseComponent.

## AfterRegistration()

template<class TElastix>

void elastix::RegularStepGradientDescent< TElastix >::AfterRegistration | ( |  | ) |

override virtual

Reimplemented from elastix::BaseComponent.

## BeforeEachResolution()

template<class TElastix>

void elastix::RegularStepGradientDescent< TElastix >::BeforeEachResolution | ( |  | ) |

override virtual

Reimplemented from elastix::BaseComponent.

## BeforeRegistration()

template<class TElastix>

void elastix::RegularStepGradientDescent< TElastix >::BeforeRegistration | ( |  | ) |

override virtual

Methods invoked by elastix, in which parameters can be set and progress information can be printed.

Reimplemented from elastix::BaseComponent.

## elxClassNameMacro()

template<class TElastix>

elastix::RegularStepGradientDescent< TElastix >::elxClassNameMacro | ( | "RegularStepGradientDescent< TElastix >" |  | ) |

Name of this class. Use this name in the parameter file to select this specific optimizer.
example: (Optimizer "RegularStepGradientDescent")

## GetClassName()

template<class TElastix>

virtual const char * elastix::RegularStepGradientDescent< TElastix >::GetClassName | ( |  | ) | const

virtual

Run-time type information (and related methods).

Reimplemented from elastix::OptimizerBase< TElastix >.

## ITK_DISALLOW_COPY_AND_MOVE()

template<class TElastix>

elastix::RegularStepGradientDescent< TElastix >::ITK_DISALLOW_COPY_AND_MOVE | ( | RegularStepGradientDescent< TElastix > |  | ) |

## New()

template<class TElastix>

Pointer elastix::RegularStepGradientDescent< TElastix >::New | ( |  | ) |

static

Method for creation through the object factory.

## SetInitialPosition()

template<class TElastix>

void elastix::RegularStepGradientDescent< TElastix >::SetInitialPosition | ( | const ParametersType & | param | ) |

override

Override the SetInitialPosition. Override the implementation in itkOptimizer.h, to ensure that the scales array and the parameters array have the same size.

## Field Documentation

## elxOverrideGetSelfMacro

template<class TElastix>

elastix::RegularStepGradientDescent< TElastix >::elxOverrideGetSelfMacro

private

Definition at line 132 of file elxRegularStepGradientDescent.h.

Generated on 1768596610 for elastix by 1.15.0 |