18#ifndef itkGradientDescentOptimizerv4_h
19#define itkGradientDescentOptimizerv4_h
77template <
typename TInternalComputationValueType>
114 itkSetMacro(LearningRate, TInternalComputationValueType);
115 itkGetConstReferenceMacro(LearningRate, TInternalComputationValueType);
124 itkSetMacro(MaximumStepSizeInPhysicalUnits, TInternalComputationValueType);
125 itkGetConstReferenceMacro(MaximumStepSizeInPhysicalUnits, TInternalComputationValueType);
135 itkSetMacro(DoEstimateLearningRateAtEachIteration,
bool);
136 itkGetConstReferenceMacro(DoEstimateLearningRateAtEachIteration,
bool);
137 itkBooleanMacro(DoEstimateLearningRateAtEachIteration);
147 itkSetMacro(DoEstimateLearningRateOnce,
bool);
148 itkGetConstReferenceMacro(DoEstimateLearningRateOnce,
bool);
149 itkBooleanMacro(DoEstimateLearningRateOnce);
161 itkSetMacro(MinimumConvergenceValue, TInternalComputationValueType);
176 itkGetConstReferenceMacro(ConvergenceValue, TInternalComputationValueType);
189 itkSetMacro(ReturnBestParametersAndValue,
bool);
190 itkGetConstReferenceMacro(ReturnBestParametersAndValue,
bool);
191 itkBooleanMacro(ReturnBestParametersAndValue);
259#ifndef ITK_MANUAL_INSTANTIATION
260# include "itkGradientDescentOptimizerv4.hxx"
typename MetricType::MeasureType MeasureType
OptimizerParameters< TInternalComputationValueType > ParametersType
ThreadedIndexedContainerPartitioner::IndexRangeType IndexRangeType
OptimizerParameters< TInternalComputationValueType > ScalesType
GradientDescentOptimizerBasev4Template()
typename MetricType::DerivativeType DerivativeType
Gradient descent optimizer.
virtual void EstimateLearningRate()
GradientDescentOptimizerv4Template Self
typename MetricType::MeasureType MeasureType
DerivativeType m_PreviousGradient
OptimizerParameters< double > ParametersType
GradientDescentOptimizerBasev4Template< TInternalComputationValueType > Superclass
void StartOptimization(bool doOnlyInitialization=false) override
double m_ConvergenceValue
ThreadedIndexedContainerPartitioner::IndexRangeType IndexRangeType
virtual void AdvanceOneStep()
SmartPointer< Self > Pointer
void ModifyGradientByLearningRateOverSubRange(const IndexRangeType &subrange) override
GradientDescentOptimizerv4Template()
MeasureType m_CurrentBestValue
bool m_ReturnBestParametersAndValue
void ModifyGradientByScalesOverSubRange(const IndexRangeType &subrange) override
double m_MinimumConvergenceValue
void PrintSelf(std::ostream &os, Indent indent) const override
void StopOptimization() override
typename MetricType::DerivativeType DerivativeType
~GradientDescentOptimizerv4Template() override=default
ParametersType m_BestParameters
void ResumeOptimization() override
TInternalComputationValueType InternalComputationValueType
SmartPointer< const Self > ConstPointer
Control indentation during Print() invocation.
Implements transparent reference counting.
The "itk" namespace contains all Insight Segmentation and Registration Toolkit (ITK) classes....
unsigned long SizeValueType
GradientDescentOptimizerv4Template< double > GradientDescentOptimizerv4