ITK
5.0.0
Insight Segmentation and Registration Toolkit
|
#include <itkGradientDescentOptimizerBasev4.h>
Definition at line 39 of file itkGradientDescentOptimizerBasev4.h.
Public Member Functions | |
SizeValueType | GetCurrentIteration () const override |
virtual const DerivativeType & | GetGradient () const |
virtual const char * | GetNameOfClass () const |
SizeValueType | GetNumberOfIterations () const override |
virtual const StopConditionType & | GetStopCondition () const |
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 () |
void | SetNumberOfIterations (const SizeValueType numberOfIterations) override |
virtual void | ModifyGradientByScales () |
virtual void | ModifyGradientByLearningRate () |
Public Member Functions inherited from itk::ObjectToObjectOptimizerBaseTemplate< TInternalComputationValueType > | |
virtual const MeasureType & | GetCurrentMetricValue () const |
virtual const ParametersType & | GetCurrentPosition () const |
virtual const ThreadIdType & | GetNumberOfWorkUnits () const |
virtual const ScalesType & | GetScales () const |
virtual const bool & | GetScalesAreIdentity () const |
bool | GetScalesInitialized () const |
virtual const MeasureType & | GetValue () const |
virtual const ScalesType & | GetWeights () const |
virtual const bool & | GetWeightsAreIdentity () const |
virtual void | SetNumberOfWorkUnits (ThreadIdType number) |
virtual void | SetScalesEstimator (ScalesEstimatorType *_arg) |
virtual void | SetWeights (ScalesType _arg) |
virtual void | SetMetric (MetricType *_arg) |
virtual MetricType * | GetModifiableMetric () |
virtual const MetricType * | GetMetric () const |
virtual void | SetScales (const ScalesType &scales) |
virtual void | SetDoEstimateScales (bool _arg) |
virtual const bool & | GetDoEstimateScales () const |
virtual void | DoEstimateScalesOn () |
virtual void | DoEstimateScalesOff () |
Public Member Functions inherited from itk::Object | |
unsigned long | AddObserver (const EventObject &event, Command *) |
unsigned long | AddObserver (const EventObject &event, Command *) 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) |
void | SetDebug (bool debugFlag) const |
void | SetReferenceCount (int) override |
void | UnRegister () const noexceptoverride |
void | SetMetaDataDictionary (const MetaDataDictionary &rhs) |
void | SetMetaDataDictionary (MetaDataDictionary &&rrhs) |
virtual void | SetObjectName (std::string _arg) |
virtual const std::string & | GetObjectName () const |
Public Member Functions inherited from itk::LightObject | |
virtual void | Delete () |
virtual int | GetReferenceCount () const |
itkCloneMacro (Self) | |
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 | |
Protected Member Functions inherited from itk::ObjectToObjectOptimizerBaseTemplate< TInternalComputationValueType > | |
void | PrintSelf (std::ostream &os, Indent indent) const override |
ObjectToObjectOptimizerBaseTemplate () | |
~ObjectToObjectOptimizerBaseTemplate () override | |
Protected Member Functions inherited from itk::Object | |
Object () | |
bool | PrintObservers (std::ostream &os, Indent indent) const |
virtual void | SetTimeStamp (const TimeStamp &time) |
~Object () override | |
Protected Member Functions inherited from itk::LightObject | |
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 Public Member Functions inherited from itk::Object | |
static bool | GetGlobalWarningDisplay () |
static void | GlobalWarningDisplayOff () |
static void | GlobalWarningDisplayOn () |
static Pointer | New () |
static void | SetGlobalWarningDisplay (bool flag) |
Static Public Member Functions inherited from itk::LightObject | |
static void | BreakOnError () |
static Pointer | New () |
using itk::GradientDescentOptimizerBasev4Template< TInternalComputationValueType >::ConstPointer = SmartPointer< const Self > |
Definition at line 49 of file itkGradientDescentOptimizerBasev4.h.
using itk::GradientDescentOptimizerBasev4Template< TInternalComputationValueType >::ConvergenceMonitoringType = itk::Function::WindowConvergenceMonitoringFunction<TInternalComputationValueType> |
Type for the convergence checker
Definition at line 89 of file itkGradientDescentOptimizerBasev4.h.
using itk::GradientDescentOptimizerBasev4Template< TInternalComputationValueType >::DerivativeType = typename Superclass::DerivativeType |
Derivative type
Definition at line 79 of file itkGradientDescentOptimizerBasev4.h.
using itk::GradientDescentOptimizerBasev4Template< TInternalComputationValueType >::IndexRangeType = ThreadedIndexedContainerPartitioner::IndexRangeType |
Definition at line 152 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 72 of file itkGradientDescentOptimizerBasev4.h.
using itk::GradientDescentOptimizerBasev4Template< TInternalComputationValueType >::MeasureType = typename Superclass::MeasureType |
Measure type
Definition at line 82 of file itkGradientDescentOptimizerBasev4.h.
using itk::GradientDescentOptimizerBasev4Template< TInternalComputationValueType >::MetricType = typename Superclass::MetricType |
Metric type over which this class is templated
Definition at line 75 of file itkGradientDescentOptimizerBasev4.h.
using itk::GradientDescentOptimizerBasev4Template< TInternalComputationValueType >::MetricTypePointer = typename MetricType::Pointer |
Definition at line 76 of file itkGradientDescentOptimizerBasev4.h.
using itk::GradientDescentOptimizerBasev4Template< TInternalComputationValueType >::ParametersType = typename Superclass::ParametersType |
Definition at line 86 of file itkGradientDescentOptimizerBasev4.h.
using itk::GradientDescentOptimizerBasev4Template< TInternalComputationValueType >::Pointer = SmartPointer< Self > |
Definition at line 48 of file itkGradientDescentOptimizerBasev4.h.
using itk::GradientDescentOptimizerBasev4Template< TInternalComputationValueType >::ScalesType = typename Superclass::ScalesType |
Definition at line 84 of file itkGradientDescentOptimizerBasev4.h.
using itk::GradientDescentOptimizerBasev4Template< TInternalComputationValueType >::Self = GradientDescentOptimizerBasev4Template |
Standard class type aliases.
Definition at line 46 of file itkGradientDescentOptimizerBasev4.h.
using itk::GradientDescentOptimizerBasev4Template< TInternalComputationValueType >::StopConditionDescriptionType = typename Superclass::StopConditionDescriptionType |
Stop condition internal string type
Definition at line 69 of file itkGradientDescentOptimizerBasev4.h.
using itk::GradientDescentOptimizerBasev4Template< TInternalComputationValueType >::StopConditionReturnStringType = typename Superclass::StopConditionReturnStringType |
Stop condition return string type
Definition at line 66 of file itkGradientDescentOptimizerBasev4.h.
using itk::GradientDescentOptimizerBasev4Template< TInternalComputationValueType >::Superclass = ObjectToObjectOptimizerBaseTemplate<TInternalComputationValueType> |
Definition at line 47 of file itkGradientDescentOptimizerBasev4.h.
enum itk::GradientDescentOptimizerBasev4Template::StopConditionType |
Codes of stopping conditions.
Enumerator | |
---|---|
MAXIMUM_NUMBER_OF_ITERATIONS | |
COSTFUNCTION_ERROR | |
UPDATE_PARAMETERS_ERROR | |
STEP_TOO_SMALL | |
CONVERGENCE_CHECKER_PASSED | |
GRADIENT_MAGNITUDE_TOLEARANCE | |
OTHER_ERROR |
Definition at line 55 of file itkGradientDescentOptimizerBasev4.h.
|
protected |
Default constructor
|
overrideprotecteddefault |
Default constructor
|
inlineoverridevirtual |
Get the current iteration number.
Reimplemented from itk::ObjectToObjectOptimizerBaseTemplate< TInternalComputationValueType >.
Definition at line 116 of file itkGradientDescentOptimizerBasev4.h.
|
virtual |
Get the most recent gradient values.
|
virtual |
Run-time type information (and related methods).
Reimplemented from itk::ObjectToObjectOptimizerBaseTemplate< TInternalComputationValueType >.
Reimplemented in itk::GradientDescentOptimizerv4Template< TInternalComputationValueType >, itk::QuasiNewtonOptimizerv4Template< TInternalComputationValueType >, itk::GradientDescentLineSearchOptimizerv4Template< TInternalComputationValueType >, itk::ConjugateGradientLineSearchOptimizerv4Template< TInternalComputationValueType >, itk::MultiGradientOptimizerv4Template< TInternalComputationValueType >, and itk::RegularStepGradientDescentOptimizerv4< TInternalComputationValueType >.
|
inlineoverridevirtual |
Get the number of iterations.
Reimplemented from itk::ObjectToObjectOptimizerBaseTemplate< TInternalComputationValueType >.
Definition at line 110 of file itkGradientDescentOptimizerBasev4.h.
|
virtual |
Get stop condition enum
Reimplemented in itk::MultiGradientOptimizerv4Template< TInternalComputationValueType >.
|
overridevirtual |
Get the reason for termination
Implements itk::ObjectToObjectOptimizerBaseTemplate< TInternalComputationValueType >.
Reimplemented in itk::MultiGradientOptimizerv4Template< 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 optionaly 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 >, 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 optionaly 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 >, 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::Object.
Reimplemented in itk::GradientDescentOptimizerv4Template< TInternalComputationValueType >, itk::QuasiNewtonOptimizerv4Template< TInternalComputationValueType >, itk::RegularStepGradientDescentOptimizerv4< TInternalComputationValueType >, and itk::MultiGradientOptimizerv4Template< TInternalComputationValueType >.
|
pure virtual |
Resume optimization. This runs the optimization loop, and allows continuation of stopped optimization
Implemented in itk::GradientDescentOptimizerv4Template< TInternalComputationValueType >, and itk::MultiGradientOptimizerv4Template< TInternalComputationValueType >.
|
inlineoverridevirtual |
Set the number of iterations.
Reimplemented from itk::ObjectToObjectOptimizerBaseTemplate< TInternalComputationValueType >.
Definition at line 98 of file itkGradientDescentOptimizerBasev4.h.
|
overridevirtual |
Start and run the optimization
Reimplemented from itk::ObjectToObjectOptimizerBaseTemplate< TInternalComputationValueType >.
Reimplemented in itk::GradientDescentOptimizerv4Template< TInternalComputationValueType >, itk::RegularStepGradientDescentOptimizerv4< TInternalComputationValueType >, itk::MultiGradientOptimizerv4Template< TInternalComputationValueType >, and itk::QuasiNewtonOptimizerv4Template< 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 >, and itk::MultiGradientOptimizerv4Template< TInternalComputationValueType >.
|
protected |
The convergence checker.
Definition at line 209 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 206 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 181 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 186 of file itkGradientDescentOptimizerBasev4.h.
|
protected |
Current gradient
Definition at line 220 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 194 of file itkGradientDescentOptimizerBasev4.h.
|
protected |
Definition at line 212 of file itkGradientDescentOptimizerBasev4.h.
|
protected |
Definition at line 211 of file itkGradientDescentOptimizerBasev4.h.
|
protected |
Definition at line 215 of file itkGradientDescentOptimizerBasev4.h.
|
protected |
Definition at line 216 of file itkGradientDescentOptimizerBasev4.h.
|
protected |
Definition at line 217 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 200 of file itkGradientDescentOptimizerBasev4.h.