18#ifndef itkGradientDescentOptimizerv4_h
19#define itkGradientDescentOptimizerv4_h
77template <
typename TInternalComputationValueType>
102 using typename Superclass::DerivativeType;
105 using typename Superclass::MeasureType;
106 using typename Superclass::IndexRangeType;
107 using typename Superclass::ScalesType;
108 using typename Superclass::ParametersType;
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);
234 TInternalComputationValueType m_LearningRate{};
235 TInternalComputationValueType m_MinimumConvergenceValue{};
236 TInternalComputationValueType m_ConvergenceValue{};
242 bool m_ReturnBestParametersAndValue{
false };
259#ifndef ITK_MANUAL_INSTANTIATION
260# include "itkGradientDescentOptimizerv4.hxx"
TInternalComputationValueType InternalComputationValueType
ThreadedIndexedContainerPartitioner::IndexRangeType IndexRangeType
Gradient descent optimizer.
virtual void EstimateLearningRate()
void StartOptimization(bool doOnlyInitialization=false) override
virtual void AdvanceOneStep()
void ModifyGradientByLearningRateOverSubRange(const IndexRangeType &subrange) override
GradientDescentOptimizerv4Template()
void ModifyGradientByScalesOverSubRange(const IndexRangeType &subrange) override
void PrintSelf(std::ostream &os, Indent indent) const override
void StopOptimization() override
~GradientDescentOptimizerv4Template() override=default
void ResumeOptimization() override
Control indentation during Print() invocation.
Light weight base class for most itk classes.
typename MetricType::DerivativeType DerivativeType
typename MetricType::MeasureType MeasureType
The "itk" namespace contains all Insight Segmentation and Registration Toolkit (ITK) classes....
unsigned long SizeValueType