![]() |
Home | Main Page | Modules | Namespace List | Class Hierarchy | Alphabetical List | Data Structures | File List | Namespace Members | Data Fields | Globals | Related Pages |
#include <elxConjugateGradient.h>
An optimizer based on the itk::GenericConjugateGradientOptimizer.
A ConjugateGradient optimizer, using the itk::MoreThuenteLineSearchOptimizer. Different conjugate gradient methods can be selected with this optimizer.
This optimizer support the NewSamplesEveryIteration option. It requests new samples for the computation of each search direction (not during the line search). Actually this makes no sense for a conjugate gradient optimizer. So, think twice before using the NewSamplesEveryIteration option.
The parameters used in this class are:
Optimizer: Select this optimizer as follows:
(Optimizer "ConjugateGradient")
GenerateLineSearchIterations: Whether line search iteration should be counted as elastix-iterations.
example: (GenerateLineSearchIterations "true")
Can only be specified for all resolutions at once.
Default value: "false".
MaximumNumberOfIterations: The maximum number of iterations in each resolution.
example: (MaximumNumberOfIterations 100 100 50)
Default value: 100.
MaximumNumberOfLineSearchIterations: The maximum number of iterations in each resolution.
example: (MaximumNumberOfIterations 10 10 5)
Default value: 10.
StepLength: Set the length of the initial step tried by the itk::MoreThuenteLineSearchOptimizer.
example: (StepLength 2.0 1.0 0.5)
Default value: 1.0.
LineSearchValueTolerance: Determine the Wolfe conditions that the itk::MoreThuenteLineSearchOptimizer tries to satisfy.
example: (LineSearchValueTolerance 0.0001 0.0001 0.0001)
Default value: 0.0001.
LineSearchGradientTolerance: Determine the Wolfe conditions that the itk::MoreThuenteLineSearchOptimizer tries to satisfy.
example: (LineSearchGradientTolerance 0.9 0.9 0.9)
Default value: 0.9.
ValueTolerance: Stopping criterion. See the documentation of the itk::GenericConjugateGradientOptimizer for more information.
example: (ValueTolerance 0.001 0.0001 0.000001)
Default value: 0.00001.
GradientMagnitudeTolerance: Stopping criterion. See the documentation of the itk::GenericConjugateGradientOptimizer for more information.
example: (GradientMagnitudeTolerance 0.001 0.0001 0.000001)
Default value: 0.000001.
ConjugateGradientType: a string that defines how 'beta' is computed in each resolution. The following methods are implemented: "SteepestDescent", "FletcherReeves", "PolakRibiere", "DaiYuan", "HestenesStiefel", and "DaiYuanHestenesStiefel". "SteepestDescent" simply sets beta=0. See the source code of the GenericConjugateGradientOptimizer for more information.
example: (ConjugateGradientType "FletcherReeves" "PolakRibiere")
Default value: "DaiYuanHestenesStiefel".
StopIfWolfeNotSatisfied: Whether to stop the optimisation if in one iteration the Wolfe conditions can not be satisfied by the itk::MoreThuenteLineSearchOptimizer.
In general it is wise to do so.
example: (StopIfWolfeNotSatisfied "true" "false")
Default value: "true".
Definition at line 91 of file elxConjugateGradient.h.
Public Member Functions | |
virtual void | AfterEachIteration (void) |
virtual void | AfterEachResolution (void) |
virtual void | AfterRegistration (void) |
virtual void | BeforeEachResolution (void) |
virtual void | BeforeRegistration (void) |
elxClassNameMacro ("ConjugateGradient") | |
virtual const char * | GetClassName () const |
virtual bool | GetStartLineSearch () const |
virtual void | StartOptimization (void) |
![]() | |
virtual const BetaDefinitionType & | GetBetaDefinition () |
virtual const DerivativeType & | GetCurrentGradient () |
virtual unsigned long | GetCurrentIteration () const |
virtual double | GetCurrentStepLength () const |
virtual MeasureType | GetCurrentValue () const |
virtual double | GetGradientMagnitudeTolerance () const |
virtual bool | GetInLineSearch () const |
virtual LineSearchOptimizerType * | GetLineSearchOptimizer () |
virtual unsigned long | GetMaximumNumberOfIterations () const |
virtual unsigned long | GetMaxNrOfItWithoutImprovement () const |
virtual const StopConditionType & | GetStopCondition () |
virtual double | GetValueTolerance () const |
virtual void | ResumeOptimization (void) |
virtual void | SetBetaDefinition (const BetaDefinitionType &arg) |
virtual void | SetGradientMagnitudeTolerance (double _arg) |
virtual void | SetLineSearchOptimizer (LineSearchOptimizerType *_arg) |
virtual void | SetMaximumNumberOfIterations (unsigned long _arg) |
virtual void | SetMaxNrOfItWithoutImprovement (unsigned long arg) |
virtual void | SetValueTolerance (double _arg) |
virtual void | StopOptimization (void) |
![]() | |
virtual const ParametersType & | GetCurrentPosition (void) const |
virtual bool | GetMaximize () const |
virtual const ScaledCostFunctionType * | GetScaledCostFunction () |
virtual const ParametersType & | GetScaledCurrentPosition () |
bool | GetUseScales (void) const |
virtual void | InitializeScales (void) |
virtual void | MaximizeOff () |
virtual void | MaximizeOn () |
virtual void | SetCostFunction (CostFunctionType *costFunction) |
virtual void | SetMaximize (bool _arg) |
virtual void | SetUseScales (bool arg) |
![]() | |
virtual void | AfterRegistrationBase (void) |
virtual void | BeforeEachResolutionBase () |
virtual ITKBaseType * | GetAsITKBaseType (void) |
virtual const ITKBaseType * | GetAsITKBaseType (void) const |
virtual void | SetCurrentPositionPublic (const ParametersType ¶m) |
virtual void | SetSinusScales (double amplitude, double frequency, unsigned long numberOfParameters) |
![]() | |
virtual ConfigurationType * | GetConfiguration (void) const |
virtual ElastixType * | GetElastix (void) const |
virtual RegistrationPointer | GetRegistration (void) const |
virtual void | SetConfiguration (ConfigurationType *_arg) |
virtual void | SetElastix (ElastixType *_arg) |
![]() | |
virtual void | AfterEachIterationBase (void) |
virtual void | AfterEachResolutionBase (void) |
virtual int | BeforeAll (void) |
virtual int | BeforeAllBase (void) |
virtual void | BeforeRegistrationBase (void) |
std::string | ConvertSecondsToDHMS (const double totalSeconds, const unsigned int precision) const |
virtual const char * | elxGetClassName (void) const |
virtual const char * | GetComponentLabel (void) const |
virtual void | SetComponentLabel (const char *label, unsigned int idx) |
Static Public Member Functions | |
static Pointer | New () |
![]() | |
static Pointer | New () |
![]() | |
static Pointer | New () |
Protected Member Functions | |
ConjugateGradient () | |
virtual std::string | DeterminePhase (void) const |
virtual std::string | GetLineSearchStopCondition (void) const |
virtual void | LineSearch (const ParametersType searchDir, double &step, ParametersType &x, MeasureType &f, DerivativeType &g) |
virtual bool | TestConvergence (bool firstLineSearchDone) |
virtual | ~ConjugateGradient () |
![]() | |
virtual void | AddBetaDefinition (const BetaDefinitionType &name, ComputeBetaFunctionType function) |
virtual double | ComputeBeta (const DerivativeType &previousGradient, const DerivativeType &gradient, const ParametersType &previousSearchDir) |
double | ComputeBetaDY (const DerivativeType &previousGradient, const DerivativeType &gradient, const ParametersType &previousSearchDir) |
double | ComputeBetaDYHS (const DerivativeType &previousGradient, const DerivativeType &gradient, const ParametersType &previousSearchDir) |
double | ComputeBetaFR (const DerivativeType &previousGradient, const DerivativeType &gradient, const ParametersType &previousSearchDir) |
double | ComputeBetaHS (const DerivativeType &previousGradient, const DerivativeType &gradient, const ParametersType &previousSearchDir) |
double | ComputeBetaPR (const DerivativeType &previousGradient, const DerivativeType &gradient, const ParametersType &previousSearchDir) |
double | ComputeBetaSD (const DerivativeType &previousGradient, const DerivativeType &gradient, const ParametersType &previousSearchDir) |
virtual void | ComputeSearchDirection (const DerivativeType &previousGradient, const DerivativeType &gradient, ParametersType &searchDir) |
GenericConjugateGradientOptimizer () | |
void | PrintSelf (std::ostream &os, Indent indent) const |
virtual void | SetInLineSearch (bool _arg) |
virtual | ~GenericConjugateGradientOptimizer () |
![]() | |
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 |
ScaledSingleValuedNonLinearOptimizer () | |
virtual void | SetCurrentPosition (const ParametersType ¶m) |
virtual void | SetScaledCurrentPosition (const ParametersType ¶meters) |
virtual | ~ScaledSingleValuedNonLinearOptimizer () |
![]() | |
virtual bool | GetNewSamplesEveryIteration (void) const |
OptimizerBase () | |
virtual void | SelectNewSamples (void) |
virtual | ~OptimizerBase () |
![]() | |
BaseComponentSE () | |
virtual | ~BaseComponentSE () |
![]() | |
BaseComponent () | |
virtual | ~BaseComponent () |
Protected Attributes | |
LineOptimizerPointer | m_LineOptimizer |
![]() | |
BetaDefinitionType | m_BetaDefinition |
BetaDefinitionMapType | m_BetaDefinitionMap |
DerivativeType | m_CurrentGradient |
unsigned long | m_CurrentIteration |
double | m_CurrentStepLength |
MeasureType | m_CurrentValue |
bool | m_InLineSearch |
bool | m_PreviousGradientAndSearchDirValid |
bool | m_Stop |
StopConditionType | m_StopCondition |
bool | m_UseDefaultMaxNrOfItWithoutImprovement |
![]() | |
ScaledCostFunctionPointer | m_ScaledCostFunction |
ParametersType | m_ScaledCurrentPosition |
![]() | |
ConfigurationPointer | m_Configuration |
ElastixPointer | m_Elastix |
RegistrationPointer | m_Registration |
Private Member Functions | |
ConjugateGradient (const Self &) | |
void | InvokeIterationEvent (const itk::EventObject &event) |
void | operator= (const Self &) |
typedef Superclass2::ConfigurationPointer elastix::ConjugateGradient< TElastix >::ConfigurationPointer |
Definition at line 130 of file elxConjugateGradient.h.
typedef Superclass2::ConfigurationType elastix::ConjugateGradient< TElastix >::ConfigurationType |
Definition at line 129 of file elxConjugateGradient.h.
typedef itk::SmartPointer< const Self > elastix::ConjugateGradient< TElastix >::ConstPointer |
Definition at line 104 of file elxConjugateGradient.h.
typedef Superclass1::CostFunctionPointer elastix::ConjugateGradient< TElastix >::CostFunctionPointer |
Definition at line 120 of file elxConjugateGradient.h.
typedef Superclass1::CostFunctionType elastix::ConjugateGradient< TElastix >::CostFunctionType |
Typedef's inherited from Superclass1.
Definition at line 119 of file elxConjugateGradient.h.
typedef Superclass1::DerivativeType elastix::ConjugateGradient< TElastix >::DerivativeType |
Definition at line 123 of file elxConjugateGradient.h.
typedef Superclass2::ElastixPointer elastix::ConjugateGradient< TElastix >::ElastixPointer |
Definition at line 128 of file elxConjugateGradient.h.
typedef Superclass2::ElastixType elastix::ConjugateGradient< TElastix >::ElastixType |
Typedef's inherited from Elastix.
Definition at line 127 of file elxConjugateGradient.h.
typedef EventPassThroughType::Pointer elastix::ConjugateGradient< TElastix >::EventPassThroughPointer |
Definition at line 139 of file elxConjugateGradient.h.
typedef itk::ReceptorMemberCommand< Self > elastix::ConjugateGradient< TElastix >::EventPassThroughType |
Definition at line 138 of file elxConjugateGradient.h.
typedef Superclass2::ITKBaseType elastix::ConjugateGradient< TElastix >::ITKBaseType |
Definition at line 133 of file elxConjugateGradient.h.
typedef LineOptimizerType::Pointer elastix::ConjugateGradient< TElastix >::LineOptimizerPointer |
Definition at line 137 of file elxConjugateGradient.h.
typedef itk::MoreThuenteLineSearchOptimizer elastix::ConjugateGradient< TElastix >::LineOptimizerType |
Extra typedefs
Definition at line 136 of file elxConjugateGradient.h.
typedef Superclass1::ParametersType elastix::ConjugateGradient< TElastix >::ParametersType |
Definition at line 122 of file elxConjugateGradient.h.
typedef itk::SmartPointer< Self > elastix::ConjugateGradient< TElastix >::Pointer |
Definition at line 103 of file elxConjugateGradient.h.
typedef Superclass2::RegistrationPointer elastix::ConjugateGradient< TElastix >::RegistrationPointer |
Definition at line 132 of file elxConjugateGradient.h.
typedef Superclass2::RegistrationType elastix::ConjugateGradient< TElastix >::RegistrationType |
Definition at line 131 of file elxConjugateGradient.h.
typedef Superclass1::ScalesType elastix::ConjugateGradient< TElastix >::ScalesType |
Definition at line 124 of file elxConjugateGradient.h.
typedef ConjugateGradient elastix::ConjugateGradient< TElastix >::Self |
Standard ITK.
Definition at line 100 of file elxConjugateGradient.h.
typedef Superclass1::StopConditionType elastix::ConjugateGradient< TElastix >::StopConditionType |
Definition at line 121 of file elxConjugateGradient.h.
typedef GenericConjugateGradientOptimizer elastix::ConjugateGradient< TElastix >::Superclass1 |
Definition at line 101 of file elxConjugateGradient.h.
typedef OptimizerBase< TElastix > elastix::ConjugateGradient< TElastix >::Superclass2 |
Definition at line 102 of file elxConjugateGradient.h.
|
protected |
|
inlineprotectedvirtual |
Definition at line 162 of file elxConjugateGradient.h.
|
private |
|
virtual |
Reimplemented from elastix::BaseComponent.
|
virtual |
Reimplemented from elastix::BaseComponent.
|
virtual |
Reimplemented from elastix::BaseComponent.
|
virtual |
Reimplemented from elastix::BaseComponent.
|
virtual |
Methods to set parameters and print output at different stages in the registration process.
Reimplemented from elastix::BaseComponent.
|
protectedvirtual |
Generate a string, representing the phase of optimisation (line search, main)
elastix::ConjugateGradient< TElastix >::elxClassNameMacro | ( | "ConjugateGradient< TElastix >" | ) |
Name of this class. Use this name in the parameter file to select this specific optimizer.
example: (Optimizer "ConjugateGradient")
|
virtual |
Run-time type information (and related methods).
Reimplemented from itk::GenericConjugateGradientOptimizer.
|
protectedvirtual |
Convert the line search stop condition to a string
|
virtual |
|
private |
|
protectedvirtual |
Call the superclass' implementation. If an itk::ExceptionObject is caught, because the line search optimizer tried a too big step, the exception is printed, but ignored further. The optimizer stops, but elastix just goes on to the next resolution.
Reimplemented from itk::GenericConjugateGradientOptimizer.
|
static |
Method for creation through the object factory.
|
private |
|
virtual |
Check if any scales are set, and set the UseScales flag on or off; after that call the superclass' implementation
Reimplemented from itk::GenericConjugateGradientOptimizer.
|
protectedvirtual |
Reimplement the superclass. Calls the superclass' implementation and checks if the MoreThuente line search routine has stopped with Wolfe conditions satisfied.
Reimplemented from itk::GenericConjugateGradientOptimizer.
|
private |
Definition at line 196 of file elxConjugateGradient.h.
|
private |
Definition at line 199 of file elxConjugateGradient.h.
|
protected |
Definition at line 164 of file elxConjugateGradient.h.
|
private |
Definition at line 197 of file elxConjugateGradient.h.
|
private |
Definition at line 198 of file elxConjugateGradient.h.
|
private |
Definition at line 200 of file elxConjugateGradient.h.
|
private |
Definition at line 201 of file elxConjugateGradient.h.
Generated on 07-03-2016 for elastix by ![]() |
![]() |