18#ifndef itkGradientDescentOptimizerBasev4_h
19#define itkGradientDescentOptimizerBasev4_h
39template <
typename TInternalComputationValueType>
55#if !defined(ITK_LEGACY_REMOVE)
58 itk::StopConditionObjectToObjectOptimizerEnum::MAXIMUM_NUMBER_OF_ITERATIONS;
60 itk::StopConditionObjectToObjectOptimizerEnum::COSTFUNCTION_ERROR;
62 itk::StopConditionObjectToObjectOptimizerEnum::UPDATE_PARAMETERS_ERROR;
64 itk::StopConditionObjectToObjectOptimizerEnum::STEP_TOO_SMALL;
66 itk::StopConditionObjectToObjectOptimizerEnum::CONVERGENCE_CHECKER_PASSED;
68 itk::StopConditionObjectToObjectOptimizerEnum::GRADIENT_MAGNITUDE_TOLEARANCE;
70 itk::StopConditionObjectToObjectOptimizerEnum::OTHER_ERROR;
223#ifndef ITK_MANUAL_INSTANTIATION
224# include "itkGradientDescentOptimizerBasev4.hxx"
SmartPointer< Self > Pointer
Class which monitors convergence during the course of optimization.
SmartPointer< Self > Pointer
bool m_DoEstimateLearningRateAtEachIteration
SmartPointer< const Self > ConstPointer
virtual void ModifyGradientByScalesOverSubRange(const IndexRangeType &subrange)=0
StopConditionDescriptionType m_StopConditionDescription
DomainThreader< ThreadedIndexedContainerPartitioner, Self >::Pointer m_ModifyGradientByLearningRateThreader
bool m_DoEstimateLearningRateOnce
virtual void ModifyGradientByLearningRateOverSubRange(const IndexRangeType &subrange)=0
void StartOptimization(bool doOnlyInitialization=false) override
typename MetricType::Pointer MetricTypePointer
double m_MaximumStepSizeInPhysicalUnits
std::ostringstream StopConditionDescriptionType
DerivativeType m_Gradient
StopConditionObjectToObjectOptimizerEnum m_StopCondition
GradientDescentOptimizerBasev4Template Self
TInternalComputationValueType InternalComputationValueType
ThreadedIndexedContainerPartitioner::IndexRangeType IndexRangeType
ObjectToObjectOptimizerBaseTemplate< TInternalComputationValueType > Superclass
virtual void ModifyGradientByLearningRate()
virtual void ResumeOptimization()=0
std::string StopConditionReturnStringType
~GradientDescentOptimizerBasev4Template() override=default
void PrintSelf(std::ostream &os, Indent indent) const override
GradientDescentOptimizerBasev4Template()
virtual void StopOptimization()
bool m_UseConvergenceMonitoring
ConvergenceMonitoringType::Pointer m_ConvergenceMonitoring
SmartPointer< Self > Pointer
SizeValueType m_ConvergenceWindowSize
virtual void ModifyGradientByScales()
typename MetricType::DerivativeType DerivativeType
itk::Function::WindowConvergenceMonitoringFunction< TInternalComputationValueType > ConvergenceMonitoringType
DomainThreader< ThreadedIndexedContainerPartitioner, Self >::Pointer m_ModifyGradientByScalesThreader
StopConditionReturnStringType GetStopConditionDescription() const override
typename MetricType::MeasureType MeasureType
OptimizerParameters< double > ParametersType
OptimizerParameters< double > ScalesType
typename MetricType::DerivativeType DerivativeType
Control indentation during Print() invocation.
SmartPointer< Self > Pointer
ObjectToObjectOptimizerBaseTemplate()
std::ostringstream StopConditionDescriptionType
ObjectToObjectMetricBaseTemplate< TInternalComputationValueType > MetricType
std::string StopConditionReturnStringType
Implements transparent reference counting.
DomainType IndexRangeType
The "itk" namespace contains all Insight Segmentation and Registration Toolkit (ITK) classes....
ObjectToObjectOptimizerBaseTemplateEnums::StopConditionObjectToObjectOptimizer StopConditionObjectToObjectOptimizerEnum
unsigned long SizeValueType
GradientDescentOptimizerBasev4Template< double > GradientDescentOptimizerBasev4