18 #ifndef itkGradientDescentOptimizerv4_h
19 #define itkGradientDescentOptimizerv4_h
76 template<
typename TInternalComputationValueType>
108 itkSetMacro(LearningRate, TInternalComputationValueType);
111 itkGetConstReferenceMacro(LearningRate, TInternalComputationValueType);
119 itkSetMacro(MaximumStepSizeInPhysicalUnits, TInternalComputationValueType);
122 itkGetConstReferenceMacro(MaximumStepSizeInPhysicalUnits, TInternalComputationValueType);
131 itkSetMacro(DoEstimateLearningRateAtEachIteration,
bool);
132 itkGetConstReferenceMacro(DoEstimateLearningRateAtEachIteration,
bool);
133 itkBooleanMacro(DoEstimateLearningRateAtEachIteration);
143 itkSetMacro(DoEstimateLearningRateOnce,
bool);
144 itkGetConstReferenceMacro(DoEstimateLearningRateOnce,
bool);
145 itkBooleanMacro(DoEstimateLearningRateOnce);
157 itkSetMacro(MinimumConvergenceValue, TInternalComputationValueType);
170 itkGetConstReferenceMacro( ConvergenceValue, TInternalComputationValueType);
183 itkSetMacro(ReturnBestParametersAndValue,
bool);
184 itkGetConstReferenceMacro(ReturnBestParametersAndValue,
bool);
185 itkBooleanMacro(ReturnBestParametersAndValue);
189 virtual void StartOptimization(
bool doOnlyInitialization =
false ) ITK_OVERRIDE;
191 virtual
void StopOptimization(
void) ITK_OVERRIDE;
193 virtual
void ResumeOptimization() ITK_OVERRIDE;
196 virtual
void EstimateLearningRate();
202 virtual
void AdvanceOneStep();
205 virtual
void ModifyGradientByScalesOverSubRange( const
IndexRangeType& subrange ) ITK_OVERRIDE;
206 virtual
void ModifyGradientByLearningRateOverSubRange( const
IndexRangeType& subrange ) ITK_OVERRIDE;
212 TInternalComputationValueType m_LearningRate;
220 virtual
void PrintSelf( std::ostream & os,
Indent indent ) const ITK_OVERRIDE;
227 TInternalComputationValueType m_MinimumConvergenceValue;
231 TInternalComputationValueType m_ConvergenceValue;
238 bool m_ReturnBestParametersAndValue;
249 ITK_DISALLOW_COPY_AND_ASSIGN(GradientDescentOptimizerv4Template);
257 #ifndef ITK_MANUAL_INSTANTIATION
258 #include "itkGradientDescentOptimizerv4.hxx"
Light weight base class for most itk classes.
Superclass::IndexRangeType IndexRangeType
Superclass::DerivativeType DerivativeType
Superclass::ParametersType ParametersType
SmartPointer< Self > Pointer
Superclass::ScalesType ScalesType
SmartPointer< const Self > ConstPointer
GradientDescentOptimizerv4Template Self
unsigned long SizeValueType
GradientDescentOptimizerBasev4Template< TInternalComputationValueType > Superclass
Superclass::MeasureType MeasureType
Superclass::DerivativeType DerivativeType
TInternalComputationValueType InternalComputationValueType
Control indentation during Print() invocation.
Superclass::MeasureType MeasureType
Gradient descent optimizer.
ThreadedIndexedContainerPartitioner::IndexRangeType IndexRangeType
Superclass::StopConditionType StopConditionType