18#ifndef itkPreconditionedGradientDescentOptimizer_h
19#define itkPreconditionedGradientDescentOptimizer_h
22#include "itkArray2D.h"
23#include <vnl/vnl_sparse_matrix.h>
73 using Superclass::MeasureType;
74 using Superclass::ParametersType;
75 using Superclass::DerivativeType;
76 using Superclass::CostFunctionType;
123 itkSetMacro(LearningRate,
double);
126 itkGetConstReferenceMacro(LearningRate,
double);
129 itkSetMacro(NumberOfIterations,
unsigned long);
132 itkGetConstReferenceMacro(NumberOfIterations,
unsigned long);
135 itkGetConstMacro(CurrentIteration,
unsigned int);
138 itkGetConstReferenceMacro(Value,
double);
144 itkGetConstReferenceMacro(Gradient, DerivativeType);
147 itkGetConstReferenceMacro(SearchDirection, DerivativeType);
159 const cholmod_common *
166 const cholmod_factor *
173 itkSetMacro(DiagonalWeight,
double);
174 itkGetConstMacro(DiagonalWeight,
double);
177 itkSetMacro(MinimumGradientElementMagnitude,
double);
178 itkGetConstMacro(MinimumGradientElementMagnitude,
double);
182 itkGetConstMacro(ConditionNumber,
double);
186 itkGetConstMacro(LargestEigenValue,
double);
192 itkGetConstMacro(Sparsity,
double);
222 CholmodSolve(
const DerivativeType & gradient, DerivativeType & searchDirection,
int solveType = CHOLMOD_A);
Implement a gradient descent optimizer.
DerivativeType m_SearchDirection
virtual void AdvanceOneStep()
virtual ~PreconditionedGradientDescentOptimizer()
const cholmod_factor * GetCholmodFactor() const
StopConditionType m_StopCondition
unsigned long m_CurrentIteration
cholmod_sparse * m_CholmodGradient
cholmod_factor * m_CholmodFactor
virtual void SetPreconditionMatrix(PreconditionType &precondition)
virtual void StartOptimization()
virtual void StopOptimization()
unsigned long m_NumberOfIterations
DerivativeType::ValueType PreconditionValueType
double m_LargestEigenValue
SmartPointer< const Self > ConstPointer
PreconditionedGradientDescentOptimizer()
double m_MinimumGradientElementMagnitude
DerivativeType m_Gradient
void PrintSelf(std::ostream &os, Indent indent) const
const cholmod_common * GetCholmodCommon() const
@ MaximumNumberOfIterations
virtual void ResumeOptimization()
vnl_sparse_matrix< PreconditionValueType > PreconditionType
ITK_DISALLOW_COPY_AND_MOVE(PreconditionedGradientDescentOptimizer)
virtual void MetricErrorResponse(ExceptionObject &err)
virtual void CholmodSolve(const DerivativeType &gradient, DerivativeType &searchDirection, int solveType=CHOLMOD_A)
cholmod_common * m_CholmodCommon
A cost function that applies a scaling to another cost function.
ScaledSingleValuedNonLinearOptimizer()
NonLinearOptimizer::ScalesType ScalesType