#include <itkGradientDescentOptimizerBasev4.h>
Definition at line 40 of file itkGradientDescentOptimizerBasev4.h.
Public Member Functions | |
virtual const DerivativeType & | GetGradient () const |
const char * | GetNameOfClass () const override |
virtual const StopConditionObjectToObjectOptimizerEnum & | GetStopCondition () const |
StopConditionReturnStringType | GetStopConditionDescription () const override |
virtual void | ModifyGradientByLearningRateOverSubRange (const IndexRangeType &subrange)=0 |
virtual void | ModifyGradientByScalesOverSubRange (const IndexRangeType &subrange)=0 |
virtual void | ResumeOptimization ()=0 |
void | StartOptimization (bool doOnlyInitialization=false) override |
virtual void | StopOptimization () |
virtual void | ModifyGradientByScales () |
virtual void | ModifyGradientByLearningRate () |
![]() | |
virtual bool | CanUseScales () const |
virtual bool | CanUseScales () const |
virtual SizeValueType | GetCurrentIteration () const |
virtual SizeValueType | GetCurrentIteration () const |
virtual const MeasureType & | GetCurrentMetricValue () const |
virtual const MeasureType & | GetCurrentMetricValue () const |
virtual const ParametersType & | GetCurrentPosition () const |
virtual const ParametersType & | GetCurrentPosition () const |
const char * | GetNameOfClass () const override |
const char * | GetNameOfClass () const override |
virtual SizeValueType | GetNumberOfIterations () const |
virtual SizeValueType | GetNumberOfIterations () const |
virtual const ThreadIdType & | GetNumberOfWorkUnits () const |
virtual const ThreadIdType & | GetNumberOfWorkUnits () const |
virtual const ScalesType & | GetScales () const |
virtual const ScalesType & | GetScales () const |
virtual const bool & | GetScalesAreIdentity () const |
virtual const bool & | GetScalesAreIdentity () const |
bool | GetScalesInitialized () const |
bool | GetScalesInitialized () const |
virtual const MeasureType & | GetValue () const |
virtual const MeasureType & | GetValue () const |
virtual const ScalesType & | GetWeights () const |
virtual const ScalesType & | GetWeights () const |
virtual const bool & | GetWeightsAreIdentity () const |
virtual const bool & | GetWeightsAreIdentity () const |
virtual void | SetNumberOfIterations (SizeValueType _arg) |
virtual void | SetNumberOfIterations (SizeValueType _arg) |
virtual void | SetNumberOfWorkUnits (ThreadIdType number) |
virtual void | SetNumberOfWorkUnits (ThreadIdType number) |
virtual void | SetScales (const ScalesType &scales) |
virtual void | SetScales (const ScalesType &scales) |
virtual void | SetScalesEstimator (ScalesEstimatorType *_arg) |
virtual void | SetScalesEstimator (ScalesEstimatorType *_arg) |
virtual void | SetWeights (ScalesType _arg) |
virtual void | SetWeights (ScalesType _arg) |
virtual void | SetMetric (MetricType *_arg) |
virtual MetricType * | GetModifiableMetric () |
virtual const MetricType * | GetMetric () const |
virtual void | SetMetric (MetricType *_arg) |
virtual MetricType * | GetModifiableMetric () |
virtual const MetricType * | GetMetric () const |
virtual void | SetDoEstimateScales (bool _arg) |
virtual const bool & | GetDoEstimateScales () const |
virtual void | DoEstimateScalesOn () |
virtual void | DoEstimateScalesOff () |
virtual void | SetDoEstimateScales (bool _arg) |
virtual const bool & | GetDoEstimateScales () const |
virtual void | DoEstimateScalesOn () |
virtual void | DoEstimateScalesOff () |
![]() | |
unsigned long | AddObserver (const EventObject &event, Command *cmd) const |
unsigned long | AddObserver (const EventObject &event, std::function< void(const EventObject &)> function) const |
LightObject::Pointer | CreateAnother () const override |
virtual void | DebugOff () const |
virtual void | DebugOn () const |
Command * | GetCommand (unsigned long tag) |
bool | GetDebug () const |
MetaDataDictionary & | GetMetaDataDictionary () |
const MetaDataDictionary & | GetMetaDataDictionary () const |
virtual ModifiedTimeType | GetMTime () const |
virtual const TimeStamp & | GetTimeStamp () const |
bool | HasObserver (const EventObject &event) const |
void | InvokeEvent (const EventObject &) |
void | InvokeEvent (const EventObject &) const |
virtual void | Modified () const |
void | Register () const override |
void | RemoveAllObservers () |
void | RemoveObserver (unsigned long tag) const |
void | SetDebug (bool debugFlag) const |
void | SetReferenceCount (int) override |
void | UnRegister () const noexcept override |
void | SetMetaDataDictionary (const MetaDataDictionary &rhs) |
void | SetMetaDataDictionary (MetaDataDictionary &&rrhs) |
virtual void | SetObjectName (std::string _arg) |
virtual const std::string & | GetObjectName () const |
![]() | |
Pointer | Clone () const |
virtual void | Delete () |
virtual int | GetReferenceCount () const |
void | Print (std::ostream &os, Indent indent=0) const |
Protected Member Functions | |
void | PrintSelf (std::ostream &os, Indent indent) const override |
GradientDescentOptimizerBasev4Template () | |
~GradientDescentOptimizerBasev4Template () override=default | |
![]() | |
ObjectToObjectOptimizerBaseTemplate () | |
ObjectToObjectOptimizerBaseTemplate () | |
void | PrintSelf (std::ostream &os, Indent indent) const override |
void | PrintSelf (std::ostream &os, Indent indent) const override |
~ObjectToObjectOptimizerBaseTemplate () override | |
~ObjectToObjectOptimizerBaseTemplate () override | |
![]() | |
Object () | |
bool | PrintObservers (std::ostream &os, Indent indent) const |
virtual void | SetTimeStamp (const TimeStamp &timeStamp) |
~Object () override | |
![]() | |
virtual LightObject::Pointer | InternalClone () const |
LightObject () | |
virtual void | PrintHeader (std::ostream &os, Indent indent) const |
virtual void | PrintTrailer (std::ostream &os, Indent indent) const |
virtual | ~LightObject () |
Additional Inherited Members | |
![]() | |
static bool | GetGlobalWarningDisplay () |
static void | GlobalWarningDisplayOff () |
static void | GlobalWarningDisplayOn () |
static Pointer | New () |
static void | SetGlobalWarningDisplay (bool val) |
![]() | |
static void | BreakOnError () |
static Pointer | New () |
using itk::GradientDescentOptimizerBasev4Template< TInternalComputationValueType >::ConstPointer = SmartPointer<const Self> |
Definition at line 50 of file itkGradientDescentOptimizerBasev4.h.
using itk::GradientDescentOptimizerBasev4Template< TInternalComputationValueType >::ConvergenceMonitoringType = itk::Function::WindowConvergenceMonitoringFunction<TInternalComputationValueType> |
Type for the convergence checker
Definition at line 97 of file itkGradientDescentOptimizerBasev4.h.
using itk::ObjectToObjectOptimizerBaseTemplate< TInternalComputationValueType >::DerivativeType |
Derivative type
Definition at line 139 of file itkObjectToObjectOptimizerBase.h.
using itk::GradientDescentOptimizerBasev4Template< TInternalComputationValueType >::IndexRangeType = ThreadedIndexedContainerPartitioner::IndexRangeType |
Definition at line 142 of file itkGradientDescentOptimizerBasev4.h.
using itk::GradientDescentOptimizerBasev4Template< TInternalComputationValueType >::InternalComputationValueType = TInternalComputationValueType |
It should be possible to derive the internal computation type from the class object.
Definition at line 80 of file itkGradientDescentOptimizerBasev4.h.
using itk::ObjectToObjectOptimizerBaseTemplate< TInternalComputationValueType >::MeasureType |
Measure type
Definition at line 145 of file itkObjectToObjectOptimizerBase.h.
using itk::ObjectToObjectOptimizerBaseTemplate< TInternalComputationValueType >::MetricType |
Metric function type
Definition at line 135 of file itkObjectToObjectOptimizerBase.h.
using itk::GradientDescentOptimizerBasev4Template< TInternalComputationValueType >::MetricTypePointer = typename MetricType::Pointer |
Definition at line 84 of file itkGradientDescentOptimizerBasev4.h.
using itk::ObjectToObjectOptimizerBaseTemplate< TInternalComputationValueType >::ParametersType |
Parameters type.
Definition at line 132 of file itkObjectToObjectOptimizerBase.h.
using itk::GradientDescentOptimizerBasev4Template< TInternalComputationValueType >::Pointer = SmartPointer<Self> |
Definition at line 49 of file itkGradientDescentOptimizerBasev4.h.
using itk::ObjectToObjectOptimizerBaseTemplate< TInternalComputationValueType >::ScalesType |
Scale type.
Definition at line 128 of file itkObjectToObjectOptimizerBase.h.
using itk::GradientDescentOptimizerBasev4Template< TInternalComputationValueType >::Self = GradientDescentOptimizerBasev4Template |
Standard class type aliases.
Definition at line 47 of file itkGradientDescentOptimizerBasev4.h.
using itk::ObjectToObjectOptimizerBaseTemplate< TInternalComputationValueType >::StopConditionDescriptionType |
Stop condition internal string type
Definition at line 151 of file itkObjectToObjectOptimizerBase.h.
using itk::ObjectToObjectOptimizerBaseTemplate< TInternalComputationValueType >::StopConditionReturnStringType |
Stop condition return string type
Definition at line 148 of file itkObjectToObjectOptimizerBase.h.
using itk::GradientDescentOptimizerBasev4Template< TInternalComputationValueType >::Superclass = ObjectToObjectOptimizerBaseTemplate<TInternalComputationValueType> |
Definition at line 48 of file itkGradientDescentOptimizerBasev4.h.
|
protected |
Default constructor
|
overrideprotecteddefault |
Default constructor
|
virtual |
Get the most recent gradient values.
|
overridevirtual |
Reimplemented from itk::LightObject.
Reimplemented in itk::GradientDescentOptimizerv4Template< TInternalComputationValueType >, itk::GradientDescentOptimizerv4Template< double >, itk::GradientDescentOptimizerv4Template< double >, itk::LBFGS2Optimizerv4Template< TInternalComputationValueType >, itk::LBFGS2Optimizerv4Template< double >, itk::LBFGS2Optimizerv4Template< double >, itk::MultiGradientOptimizerv4Template< TInternalComputationValueType >, itk::MultiGradientOptimizerv4Template< double >, itk::MultiGradientOptimizerv4Template< double >, itk::QuasiNewtonOptimizerv4Template< TInternalComputationValueType >, itk::QuasiNewtonOptimizerv4Template< double >, itk::QuasiNewtonOptimizerv4Template< double >, and itk::RegularStepGradientDescentOptimizerv4< TInternalComputationValueType >.
|
virtual |
Get stop condition enum
Reimplemented in itk::MultiGradientOptimizerv4Template< TInternalComputationValueType >, itk::MultiGradientOptimizerv4Template< double >, and itk::MultiGradientOptimizerv4Template< double >.
|
overridevirtual |
Get the reason for termination
Implements itk::ObjectToObjectOptimizerBaseTemplate< TInternalComputationValueType >.
Reimplemented in itk::LBFGS2Optimizerv4Template< TInternalComputationValueType >, itk::LBFGS2Optimizerv4Template< double >, itk::LBFGS2Optimizerv4Template< double >, itk::MultiGradientOptimizerv4Template< TInternalComputationValueType >, itk::MultiGradientOptimizerv4Template< double >, and itk::MultiGradientOptimizerv4Template< double >.
|
virtual |
Modify the gradient in place, to advance the optimization. This call performs a threaded modification for transforms with local support (assumed to be dense). Otherwise the modification is performed w/out threading. See EstimateLearningRate() to perform optionally learning rate estimation. At completion, m_Gradient can be used to update the transform parameters. Derived classes may hold additional results in other member variables.
|
pure virtual |
Derived classes define this worker method to modify the gradient by learning rates. Modifications must be performed over the index range defined in subrange
. Called from ModifyGradientByLearningRate(), either directly or via threaded operation. This function is used in GradientDescentOptimizerBasev4ModifyGradientByScalesThreaderTemplate and GradientDescentOptimizerBasev4ModifyGradientByLearningRateThreaderTemplate classes.
Implemented in itk::GradientDescentOptimizerv4Template< TInternalComputationValueType >, itk::GradientDescentOptimizerv4Template< double >, itk::GradientDescentOptimizerv4Template< double >, and itk::RegularStepGradientDescentOptimizerv4< TInternalComputationValueType >.
|
virtual |
Modify the gradient in place, to advance the optimization. This call performs a threaded modification for transforms with local support (assumed to be dense). Otherwise the modification is performed w/out threading. See EstimateLearningRate() to perform optionally learning rate estimation. At completion, m_Gradient can be used to update the transform parameters. Derived classes may hold additional results in other member variables.
|
pure virtual |
Derived classes define this worker method to modify the gradient by scales. Modifications must be performed over the index range defined in subrange
. Called from ModifyGradientByScales(), either directly or via threaded operation.
Implemented in itk::GradientDescentOptimizerv4Template< TInternalComputationValueType >, itk::GradientDescentOptimizerv4Template< double >, itk::GradientDescentOptimizerv4Template< double >, and itk::RegularStepGradientDescentOptimizerv4< TInternalComputationValueType >.
|
overrideprotectedvirtual |
Methods invoked by Print() to print information about the object including superclasses. Typically not called by the user (use Print() instead) but used in the hierarchical print process to combine the output of several classes.
Reimplemented from itk::LightObject.
Reimplemented in itk::GradientDescentOptimizerv4Template< TInternalComputationValueType >, itk::GradientDescentOptimizerv4Template< double >, itk::GradientDescentOptimizerv4Template< double >, itk::LBFGS2Optimizerv4Template< TInternalComputationValueType >, itk::LBFGS2Optimizerv4Template< double >, itk::LBFGS2Optimizerv4Template< double >, itk::MultiGradientOptimizerv4Template< TInternalComputationValueType >, itk::MultiGradientOptimizerv4Template< double >, itk::MultiGradientOptimizerv4Template< double >, itk::QuasiNewtonOptimizerv4Template< TInternalComputationValueType >, itk::QuasiNewtonOptimizerv4Template< double >, itk::QuasiNewtonOptimizerv4Template< double >, and itk::RegularStepGradientDescentOptimizerv4< TInternalComputationValueType >.
|
pure virtual |
Resume optimization. This runs the optimization loop, and allows continuation of stopped optimization
Implemented in itk::GradientDescentOptimizerv4Template< TInternalComputationValueType >, itk::GradientDescentOptimizerv4Template< double >, itk::GradientDescentOptimizerv4Template< double >, itk::LBFGS2Optimizerv4Template< TInternalComputationValueType >, itk::LBFGS2Optimizerv4Template< double >, itk::LBFGS2Optimizerv4Template< double >, itk::MultiGradientOptimizerv4Template< TInternalComputationValueType >, itk::MultiGradientOptimizerv4Template< double >, and itk::MultiGradientOptimizerv4Template< double >.
|
overridevirtual |
Start and run the optimization
Reimplemented from itk::ObjectToObjectOptimizerBaseTemplate< TInternalComputationValueType >.
Reimplemented in itk::GradientDescentOptimizerv4Template< TInternalComputationValueType >, itk::GradientDescentOptimizerv4Template< double >, itk::GradientDescentOptimizerv4Template< double >, itk::LBFGS2Optimizerv4Template< TInternalComputationValueType >, itk::LBFGS2Optimizerv4Template< double >, itk::LBFGS2Optimizerv4Template< double >, itk::MultiGradientOptimizerv4Template< TInternalComputationValueType >, itk::MultiGradientOptimizerv4Template< double >, itk::MultiGradientOptimizerv4Template< double >, itk::QuasiNewtonOptimizerv4Template< TInternalComputationValueType >, itk::QuasiNewtonOptimizerv4Template< double >, itk::QuasiNewtonOptimizerv4Template< double >, and itk::RegularStepGradientDescentOptimizerv4< TInternalComputationValueType >.
|
virtual |
Stop optimization. The object is left in a state so the optimization can be resumed by calling ResumeOptimization.
Reimplemented in itk::GradientDescentOptimizerv4Template< TInternalComputationValueType >, itk::GradientDescentOptimizerv4Template< double >, itk::GradientDescentOptimizerv4Template< double >, itk::MultiGradientOptimizerv4Template< TInternalComputationValueType >, itk::MultiGradientOptimizerv4Template< double >, and itk::MultiGradientOptimizerv4Template< double >.
|
protected |
The convergence checker.
Definition at line 200 of file itkGradientDescentOptimizerBasev4.h.
|
protected |
Window size for the convergence checker. The convergence checker calculates convergence value by fitting to a window of the energy (metric value) profile.
Definition at line 197 of file itkGradientDescentOptimizerBasev4.h.
|
protected |
Flag to control use of the ScalesEstimator (if set) for automatic learning step estimation at each iteration.
Definition at line 172 of file itkGradientDescentOptimizerBasev4.h.
|
protected |
Flag to control use of the ScalesEstimator (if set) for automatic learning step estimation only once, during first iteration.
Definition at line 177 of file itkGradientDescentOptimizerBasev4.h.
|
protected |
Current gradient
Definition at line 211 of file itkGradientDescentOptimizerBasev4.h.
|
protected |
The maximum step size in physical units, to restrict learning rates. Only used with automatic learning rate estimation. It may be initialized either by calling SetMaximumStepSizeInPhysicalUnits manually or by using m_ScalesEstimator automatically, and the former has higher priority than the latter. See main documentation.
Definition at line 185 of file itkGradientDescentOptimizerBasev4.h.
|
protected |
Definition at line 203 of file itkGradientDescentOptimizerBasev4.h.
|
protected |
Definition at line 202 of file itkGradientDescentOptimizerBasev4.h.
|
protected |
Definition at line 206 of file itkGradientDescentOptimizerBasev4.h.
|
protected |
Definition at line 207 of file itkGradientDescentOptimizerBasev4.h.
|
protected |
Definition at line 208 of file itkGradientDescentOptimizerBasev4.h.
|
protected |
Flag to control using the convergence monitoring for stop condition. This flag should be always set to true except for regular step gradient descent optimizer that uses minimum step length to check the convergence.
Definition at line 191 of file itkGradientDescentOptimizerBasev4.h.