|
|
Home | Main Page | Modules | Namespace List | Class Hierarchy | Alphabetical List | Data Structures | File List | Namespace Members | Data Fields | Globals | Related Pages |
00001 /*====================================================================== 00002 00003 This file is part of the elastix software. 00004 00005 Copyright (c) University Medical Center Utrecht. All rights reserved. 00006 See src/CopyrightElastix.txt or http://elastix.isi.uu.nl/legal.php for 00007 details. 00008 00009 This software is distributed WITHOUT ANY WARRANTY; without even 00010 the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR 00011 PURPOSE. See the above copyright notices for more information. 00012 00013 ======================================================================*/ 00014 00015 #ifndef __itkAdaptiveStochasticGradientDescentOptimizer_h 00016 #define __itkAdaptiveStochasticGradientDescentOptimizer_h 00017 00018 #include "../StandardGradientDescent/itkStandardGradientDescentOptimizer.h" 00019 00020 namespace itk 00021 { 00022 00063 class AdaptiveStochasticGradientDescentOptimizer : 00064 public StandardGradientDescentOptimizer 00065 { 00066 public: 00067 00069 typedef AdaptiveStochasticGradientDescentOptimizer Self; 00070 typedef StandardGradientDescentOptimizer Superclass; 00071 00072 typedef SmartPointer<Self> Pointer; 00073 typedef SmartPointer<const Self> ConstPointer; 00074 00076 itkNewMacro( Self ); 00077 00079 itkTypeMacro( AdaptiveStochasticGradientDescentOptimizer, 00080 StandardGradientDescentOptimizer ); 00081 00083 typedef Superclass::MeasureType MeasureType; 00084 typedef Superclass::ParametersType ParametersType; 00085 typedef Superclass::DerivativeType DerivativeType; 00086 typedef Superclass::CostFunctionType CostFunctionType; 00087 typedef Superclass::ScalesType ScalesType; 00088 typedef Superclass::ScaledCostFunctionType ScaledCostFunctionType; 00089 typedef Superclass::ScaledCostFunctionPointer ScaledCostFunctionPointer; 00090 typedef Superclass::StopConditionType StopConditionType; 00091 00093 itkSetMacro( UseAdaptiveStepSizes, bool ); 00094 itkGetConstMacro( UseAdaptiveStepSizes, bool ); 00095 00098 itkSetMacro(SigmoidMax, double); 00099 itkGetConstMacro(SigmoidMax, double); 00100 00103 itkSetMacro(SigmoidMin, double); 00104 itkGetConstMacro(SigmoidMin, double); 00105 00108 itkSetMacro(SigmoidScale, double); 00109 itkGetConstMacro(SigmoidScale, double); 00110 00111 protected: 00112 00113 AdaptiveStochasticGradientDescentOptimizer(); 00114 virtual ~AdaptiveStochasticGradientDescentOptimizer() {}; 00115 00123 virtual void UpdateCurrentTime( void ); 00124 00126 DerivativeType m_PreviousGradient; 00127 00128 private: 00129 00130 AdaptiveStochasticGradientDescentOptimizer( const Self& ); // purposely not implemented 00131 void operator=( const Self& ); // purposely not implemented 00132 00134 bool m_UseAdaptiveStepSizes; 00135 double m_SigmoidMax; 00136 double m_SigmoidMin; 00137 double m_SigmoidScale; 00138 00139 }; // end class AdaptiveStochasticGradientDescentOptimizer 00140 00141 00142 } // end namespace itk 00143 00144 00145 #endif // end #ifndef __itkAdaptiveStochasticGradientDescentOptimizer_h 00146 00147
Generated on 11-05-2011 for elastix by 1.7.4 |