go home Home | Main Page | Modules | Namespace List | Class Hierarchy | Alphabetical List | Data Structures | File List | Namespace Members | Data Fields | Globals | Related Pages
itkGradientDescentOptimizer2.h
Go to the documentation of this file.
1 /*=========================================================================
2  *
3  * Copyright UMC Utrecht and contributors
4  *
5  * Licensed under the Apache License, Version 2.0 (the "License");
6  * you may not use this file except in compliance with the License.
7  * You may obtain a copy of the License at
8  *
9  * http://www.apache.org/licenses/LICENSE-2.0.txt
10  *
11  * Unless required by applicable law or agreed to in writing, software
12  * distributed under the License is distributed on an "AS IS" BASIS,
13  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14  * See the License for the specific language governing permissions and
15  * limitations under the License.
16  *
17  *=========================================================================*/
18 #ifndef __itkGradientDescentOptimizer2_h
19 #define __itkGradientDescentOptimizer2_h
20 
22 #include "itkMultiThreader.h"
23 
24 namespace itk
25 {
26 
55 {
56 public:
57 
62  typedef SmartPointer< const Self > ConstPointer;
63 
65  itkNewMacro( Self );
66 
69 
78 
82  typedef enum {
87 
89  virtual void AdvanceOneStep( void );
90 
92  virtual void StartOptimization( void );
93 
96  virtual void ResumeOptimization( void );
97 
99  virtual void MetricErrorResponse( ExceptionObject & err );
100 
103  virtual void StopOptimization( void );
104 
106  itkSetMacro( LearningRate, double );
107 
109  itkGetConstReferenceMacro( LearningRate, double );
110 
112  itkSetMacro( NumberOfIterations, unsigned long );
113 
115  itkGetConstReferenceMacro( NumberOfIterations, unsigned long );
116 
118  itkGetConstMacro( CurrentIteration, unsigned int );
119 
121  itkGetConstReferenceMacro( Value, double );
122 
124  itkGetConstReferenceMacro( StopCondition, StopConditionType );
125 
127  itkGetConstReferenceMacro( Gradient, DerivativeType );
128 
130  itkGetConstReferenceMacro( SearchDirection, DerivativeType );
131 
133  void SetNumberOfThreads( ThreadIdType numberOfThreads )
134  {
135  this->m_Threader->SetNumberOfThreads( numberOfThreads );
136  }
137 
138 
139  //itkGetConstReferenceMacro( NumberOfThreads, ThreadIdType );
140  itkSetMacro( UseMultiThread, bool );
141  itkSetMacro( UseOpenMP, bool );
142  itkSetMacro( UseEigen, bool );
143 
144 protected:
145 
148  void PrintSelf( std::ostream & os, Indent indent ) const;
149 
151  typedef itk::MultiThreader ThreaderType;
152  typedef ThreaderType::ThreadInfoStruct ThreadInfoType;
153 
154  // made protected so subclass can access
155  double m_Value;
160 
161  ThreaderType::Pointer m_Threader;
162 
163  bool m_Stop;
164  unsigned long m_NumberOfIterations;
165  unsigned long m_CurrentIteration;
166 
167 private:
168 
169  GradientDescentOptimizer2( const Self & ); // purposely not implemented
170  void operator=( const Self & ); // purposely not implemented
171 
172  // multi-threaded AdvanceOneStep:
175  {
178  };
179 
182 
184  static ITK_THREAD_RETURN_TYPE AdvanceOneStepThreaderCallback( void * arg );
185 
187  inline void ThreadedAdvanceOneStep( ThreadIdType threadId, ParametersType & newPosition );
188 
189 };
190 
191 } // end namespace itk
192 
193 #endif
itk::GradientDescentOptimizer2::AdvanceOneStep
virtual void AdvanceOneStep(void)
itk::GradientDescentOptimizer2::ResumeOptimization
virtual void ResumeOptimization(void)
itk::ScaledSingleValuedNonLinearOptimizer::ScaledCostFunctionType
ScaledSingleValuedCostFunction ScaledCostFunctionType
Definition: itkScaledSingleValuedNonLinearOptimizer.h:87
itk::GradientDescentOptimizer2::AdvanceOneStepThreaderCallback
static ITK_THREAD_RETURN_TYPE AdvanceOneStepThreaderCallback(void *arg)
itk::GradientDescentOptimizer2::MetricError
@ MetricError
Definition: itkGradientDescentOptimizer2.h:84
SmartPointer< Self >
itk::ScaledSingleValuedNonLinearOptimizer::ScaledCostFunctionPointer
ScaledCostFunctionType::Pointer ScaledCostFunctionPointer
Definition: itkScaledSingleValuedNonLinearOptimizer.h:88
itk::GradientDescentOptimizer2::m_Threader
ThreaderType::Pointer m_Threader
Definition: itkGradientDescentOptimizer2.h:161
itk::GradientDescentOptimizer2::MinimumStepSize
@ MinimumStepSize
Definition: itkGradientDescentOptimizer2.h:85
itk::GradientDescentOptimizer2::ScalesType
Superclass::ScalesType ScalesType
Definition: itkGradientDescentOptimizer2.h:75
itk::GradientDescentOptimizer2::StartOptimization
virtual void StartOptimization(void)
itk::GradientDescentOptimizer2::m_Gradient
DerivativeType m_Gradient
Definition: itkGradientDescentOptimizer2.h:156
itk::GradientDescentOptimizer2::ParametersType
Superclass::ParametersType ParametersType
Definition: itkGradientDescentOptimizer2.h:72
itk::GradientDescentOptimizer2
Implement a gradient descent optimizer.
Definition: itkGradientDescentOptimizer2.h:55
itk::GradientDescentOptimizer2::operator=
void operator=(const Self &)
itk::GradientDescentOptimizer2::Superclass
ScaledSingleValuedNonLinearOptimizer Superclass
Definition: itkGradientDescentOptimizer2.h:60
itk::GradientDescentOptimizer2::SetNumberOfThreads
void SetNumberOfThreads(ThreadIdType numberOfThreads)
Definition: itkGradientDescentOptimizer2.h:133
itk::GradientDescentOptimizer2::MaximumNumberOfIterations
@ MaximumNumberOfIterations
Definition: itkGradientDescentOptimizer2.h:83
itk::GradientDescentOptimizer2::m_CurrentIteration
unsigned long m_CurrentIteration
Definition: itkGradientDescentOptimizer2.h:165
itk::ScaledSingleValuedNonLinearOptimizer::DerivativeType
Superclass::DerivativeType DerivativeType
Definition: itkScaledSingleValuedNonLinearOptimizer.h:83
itk::GradientDescentOptimizer2::m_LearningRate
double m_LearningRate
Definition: itkGradientDescentOptimizer2.h:158
itk::GradientDescentOptimizer2::StopOptimization
virtual void StopOptimization(void)
itk::GradientDescentOptimizer2::Pointer
SmartPointer< Self > Pointer
Definition: itkGradientDescentOptimizer2.h:61
itk::GradientDescentOptimizer2::m_StopCondition
StopConditionType m_StopCondition
Definition: itkGradientDescentOptimizer2.h:159
itk::GradientDescentOptimizer2::MultiThreaderParameterType::t_Optimizer
Self * t_Optimizer
Definition: itkGradientDescentOptimizer2.h:177
itk::GradientDescentOptimizer2::m_NumberOfIterations
unsigned long m_NumberOfIterations
Definition: itkGradientDescentOptimizer2.h:164
itk::GradientDescentOptimizer2::ScaledCostFunctionType
Superclass::ScaledCostFunctionType ScaledCostFunctionType
Definition: itkGradientDescentOptimizer2.h:76
itk::GradientDescentOptimizer2::GradientDescentOptimizer2
GradientDescentOptimizer2()
itk::GradientDescentOptimizer2::m_Value
double m_Value
Definition: itkGradientDescentOptimizer2.h:155
itkScaledSingleValuedNonLinearOptimizer.h
ThreadIdType
itk::GradientDescentOptimizer2::ScaledCostFunctionPointer
Superclass::ScaledCostFunctionPointer ScaledCostFunctionPointer
Definition: itkGradientDescentOptimizer2.h:77
itk::GradientDescentOptimizer2::MultiThreaderParameterType
Definition: itkGradientDescentOptimizer2.h:175
itk::ScaledSingleValuedNonLinearOptimizer::CostFunctionType
Superclass::CostFunctionType CostFunctionType
Definition: itkScaledSingleValuedNonLinearOptimizer.h:84
itk::ScaledSingleValuedNonLinearOptimizer::MeasureType
Superclass::MeasureType MeasureType
Definition: itkScaledSingleValuedNonLinearOptimizer.h:78
itk::ScaledSingleValuedNonLinearOptimizer
Definition: itkScaledSingleValuedNonLinearOptimizer.h:64
itk::GradientDescentOptimizer2::m_UseMultiThread
bool m_UseMultiThread
Definition: itkGradientDescentOptimizer2.h:173
itk::GradientDescentOptimizer2::GradientDescentOptimizer2
GradientDescentOptimizer2(const Self &)
itk::GradientDescentOptimizer2::MeasureType
Superclass::MeasureType MeasureType
Definition: itkGradientDescentOptimizer2.h:68
itk::GradientDescentOptimizer2::ThreadedAdvanceOneStep
void ThreadedAdvanceOneStep(ThreadIdType threadId, ParametersType &newPosition)
itk::GradientDescentOptimizer2::m_UseEigen
bool m_UseEigen
Definition: itkGradientDescentOptimizer2.h:181
itk
Definition: itkAdvancedImageToImageMetric.h:40
itk::ScaledSingleValuedNonLinearOptimizer::ParametersType
Superclass::ParametersType ParametersType
Definition: itkScaledSingleValuedNonLinearOptimizer.h:82
itk::GradientDescentOptimizer2::DerivativeType
Superclass::DerivativeType DerivativeType
Definition: itkGradientDescentOptimizer2.h:73
itk::GradientDescentOptimizer2::MultiThreaderParameterType::t_NewPosition
ParametersType * t_NewPosition
Definition: itkGradientDescentOptimizer2.h:176
itk::GradientDescentOptimizer2::m_SearchDirection
DerivativeType m_SearchDirection
Definition: itkGradientDescentOptimizer2.h:157
itk::GradientDescentOptimizer2::CostFunctionType
Superclass::CostFunctionType CostFunctionType
Definition: itkGradientDescentOptimizer2.h:74
itk::GradientDescentOptimizer2::ThreadInfoType
ThreaderType::ThreadInfoStruct ThreadInfoType
Definition: itkGradientDescentOptimizer2.h:152
itk::GradientDescentOptimizer2::m_Stop
bool m_Stop
Definition: itkGradientDescentOptimizer2.h:163
itk::GradientDescentOptimizer2::StopConditionType
StopConditionType
Definition: itkGradientDescentOptimizer2.h:82
itk::GradientDescentOptimizer2::ConstPointer
SmartPointer< const Self > ConstPointer
Definition: itkGradientDescentOptimizer2.h:62
itk::ScaledSingleValuedNonLinearOptimizer::ScalesType
NonLinearOptimizer::ScalesType ScalesType
Definition: itkScaledSingleValuedNonLinearOptimizer.h:86
itk::GradientDescentOptimizer2::m_UseOpenMP
bool m_UseOpenMP
Definition: itkGradientDescentOptimizer2.h:180
itk::GradientDescentOptimizer2::ThreaderType
itk::MultiThreader ThreaderType
Definition: itkGradientDescentOptimizer2.h:151
itk::GradientDescentOptimizer2::MetricErrorResponse
virtual void MetricErrorResponse(ExceptionObject &err)
itk::GradientDescentOptimizer2::PrintSelf
void PrintSelf(std::ostream &os, Indent indent) const
itk::GradientDescentOptimizer2::~GradientDescentOptimizer2
virtual ~GradientDescentOptimizer2()
Definition: itkGradientDescentOptimizer2.h:147
itk::GradientDescentOptimizer2::Self
GradientDescentOptimizer2 Self
Definition: itkGradientDescentOptimizer2.h:59


Generated on OURCE_DATE_EPOCH for elastix by doxygen 1.8.18 elastix logo