18 #ifndef itkGradientDescentOptimizerBasev4_h
19 #define itkGradientDescentOptimizerBasev4_h
38 template<
typename TInternalComputationValueType>
99 itkDebugMacro(
"setting NumberOfIterations to " << numberOfIterations );
100 if ( this->m_NumberOfIterations != numberOfIterations)
102 this->m_NumberOfIterations = numberOfIterations;
111 return this->m_NumberOfIterations;
117 return this->m_CurrentIteration;
121 virtual void StartOptimization(
bool doOnlyInitialization =
false ) ITK_OVERRIDE;
126 virtual
void ResumeOptimization() = 0;
130 virtual
void StopOptimization();
133 virtual const StopConditionReturnStringType GetStopConditionDescription() const ITK_OVERRIDE;
147 virtual
void ModifyGradientByScales();
148 virtual
void ModifyGradientByLearningRate();
158 virtual
void ModifyGradientByScalesOverSubRange( const IndexRangeType& subrange ) = 0;
168 virtual
void ModifyGradientByLearningRateOverSubRange( const IndexRangeType& subrange ) = 0;
174 virtual ~GradientDescentOptimizerBasev4Template();
180 bool m_DoEstimateLearningRateAtEachIteration;
185 bool m_DoEstimateLearningRateOnce;
193 TInternalComputationValueType m_MaximumStepSizeInPhysicalUnits;
199 bool m_UseConvergenceMonitoring;
220 virtual
void PrintSelf(std::ostream & os,
Indent indent) const ITK_OVERRIDE;
224 ITK_DISALLOW_COPY_AND_ASSIGN(GradientDescentOptimizerBasev4Template);
233 #ifndef ITK_MANUAL_INSTANTIATION
234 #include "itkGradientDescentOptimizerBasev4.hxx"
Superclass::ScalesType ScalesType
Light weight base class for most itk classes.
Superclass::StopConditionDescriptionType StopConditionDescriptionType
Multi-threaded processing on a domain by processing sub-domains per thread.
Superclass::DerivativeType DerivativeType
Superclass::ParametersType ParametersType
Superclass::StopConditionReturnStringType StopConditionReturnStringType
SmartPointer< Self > Pointer
Superclass::MetricType MetricType
MetricType::MeasureType MeasureType
SmartPointer< const Self > ConstPointer
virtual SizeValueType GetCurrentIteration() const override
virtual SizeValueType GetNumberOfIterations() const override
unsigned long SizeValueType
virtual void SetNumberOfIterations(const SizeValueType numberOfIterations) override
Superclass::MeasureType MeasureType
TInternalComputationValueType InternalComputationValueType
Class to hold and manage different parameter types used during optimization.
Class which monitors convergence during the course of optimization.
Partitions an indexed container.
GradientDescentOptimizerBasev4Template Self
Control indentation during Print() invocation.
Abstract base for object-to-object optimizers.
ObjectToObjectOptimizerBaseTemplate< TInternalComputationValueType > Superclass
ThreadedIndexedContainerPartitioner::IndexRangeType IndexRangeType
itk::Function::WindowConvergenceMonitoringFunction< TInternalComputationValueType > ConvergenceMonitoringType
MetricType::Pointer MetricTypePointer