18 #ifndef itkGradientDescentOptimizer_h
19 #define itkGradientDescentOptimizer_h
23 #include "ITKOptimizersExport.h"
75 itkGetConstReferenceMacro(Maximize,
bool);
76 itkSetMacro(Maximize,
bool);
77 itkBooleanMacro(Maximize);
79 {
return !m_Maximize; }
81 { this->SetMaximize(!v); }
83 { this->MaximizeOff(); }
85 { this->MaximizeOn(); }
89 virtual void AdvanceOneStep();
92 virtual void StartOptimization(
void) ITK_OVERRIDE;
96 void ResumeOptimization();
100 void StopOptimization();
103 itkSetMacro(LearningRate,
double);
106 itkGetConstReferenceMacro(LearningRate,
double);
112 itkGetConstReferenceMacro(NumberOfIterations, SizeValueType);
115 itkGetConstMacro(CurrentIteration, SizeValueType);
118 itkGetConstReferenceMacro(Value,
double);
121 itkGetConstReferenceMacro(StopCondition, StopConditionType);
122 virtual const std::
string GetStopConditionDescription() const ITK_OVERRIDE;
126 itkGetConstReferenceMacro(Gradient, DerivativeType);
130 virtual ~GradientDescentOptimizer() ITK_OVERRIDE {}
131 virtual void PrintSelf(std::ostream & os,
Indent indent)
const ITK_OVERRIDE;
SizeValueType m_NumberOfIterations
SmartPointer< const Self > ConstPointer
Light weight base class for most itk classes.
Implement a gradient descent optimizer.
This class is a base for the Optimization methods that optimize a single valued function.
unsigned long SizeValueType
SingleValuedNonLinearOptimizer Superclass
std::ostringstream m_StopConditionDescription
SizeValueType m_CurrentIteration
Control indentation during Print() invocation.
DerivativeType m_Gradient
SmartPointer< Self > Pointer
StopConditionType m_StopCondition
GradientDescentOptimizer Self