19#ifndef itkFiniteDifferenceGradientDescentOptimizer_h
20#define itkFiniteDifferenceGradientDescentOptimizer_h
98 itkSetMacro(NumberOfIterations,
unsigned long);
101 itkGetConstMacro(NumberOfIterations,
unsigned long);
104 itkGetConstMacro(CurrentIteration,
unsigned long);
107 itkGetConstMacro(Value,
double);
113 itkSetMacro(Param_a,
double);
114 itkGetConstMacro(Param_a,
double);
117 itkSetMacro(Param_c,
double);
118 itkGetConstMacro(Param_c,
double);
121 itkSetMacro(Param_A,
double);
122 itkGetConstMacro(Param_A,
double);
125 itkSetMacro(Param_alpha,
double);
126 itkGetConstMacro(Param_alpha,
double);
129 itkSetMacro(Param_gamma,
double);
130 itkGetConstMacro(Param_gamma,
double);
132 itkGetConstMacro(ComputeCurrentValue,
bool);
133 itkSetMacro(ComputeCurrentValue,
bool);
134 itkBooleanMacro(ComputeCurrentValue);
137 itkGetConstMacro(GradientMagnitude,
double);
138 itkGetConstMacro(LearningRate,
double);
146 PrintSelf(std::ostream & os, Indent indent)
const override;
An optimizer based on gradient descent ...
FiniteDifferenceGradientDescentOptimizer()
unsigned long m_NumberOfIterations
ITK_DISALLOW_COPY_AND_MOVE(FiniteDifferenceGradientDescentOptimizer)
DerivativeType m_Gradient
void StartOptimization() override
virtual double Compute_a(unsigned long k) const
virtual void AdvanceOneStep()
SmartPointer< const Self > ConstPointer
void PrintSelf(std::ostream &os, Indent indent) const override
~FiniteDifferenceGradientDescentOptimizer() override=default
unsigned long m_CurrentIteration
@ MaximumNumberOfIterations
virtual double Compute_c(unsigned long k) const
double m_GradientMagnitude
bool m_ComputeCurrentValue
void ResumeOptimization()
StopConditionType m_StopCondition
ScaledSingleValuedNonLinearOptimizer()