Loading...
Searching...
No Matches
elxAdaptiveStochasticLBFGS.h
Go to the documentation of this file.
/*=========================================================================
*
* Copyright UMC Utrecht and contributors
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0.txt
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*
*=========================================================================*/
#ifndef elxAdaptiveStochasticLBFGS_h
#define elxAdaptiveStochasticLBFGS_h
#include "elxIncludes.h" // include first to avoid MSVS warning
#include "itkAdaptiveStochasticLBFGSOptimizer.h"
#include "elxProgressCommand.h"
#include "itkAdvancedTransform.h"
#include "itkMersenneTwisterRandomVariateGenerator.h"
#include "itkComputeJacobianTerms.h"
#include "itkComputeDisplacementDistribution.h"
#include "itkMultiThreaderBase.h"
#include "itkImageRandomSampler.h"
#include "itkLineSearchOptimizer.h"
#include "itkMoreThuenteLineSearchOptimizer.h"
namespace elastix
{
template <class TElastix>
class ITK_TEMPLATE_EXPORT AdaptiveStochasticLBFGS
: public itk::AdaptiveStochasticLBFGSOptimizer
, public OptimizerBase<TElastix>
{
public:
ITK_DISALLOW_COPY_AND_MOVE(AdaptiveStochasticLBFGS);
using Self = AdaptiveStochasticLBFGS;
using Superclass1 = AdaptiveStochasticLBFGSOptimizer;
using Superclass2 = OptimizerBase<TElastix>;
using Pointer = itk::SmartPointer<Self>;
using ConstPointer = itk::SmartPointer<const Self>;
itkNewMacro(Self);
itkTypeMacro(AdaptiveStochasticLBFGS, AdaptiveStochasticLBFGSOptimizer);
elxClassNameMacro("AdaptiveStochasticLBFGS");
using Superclass1::CostFunctionType;
using Superclass1::CostFunctionPointer;
using Superclass1::StopConditionType;
using typename Superclass2::ElastixType;
using typename Superclass2::RegistrationType;
using ITKBaseType = typename Superclass2::ITKBaseType;
using SizeValueType = itk::SizeValueType;
// using LineSearchOptimizerType = LineSearchOptimizer ;
// using LineSearchOptimizerPointer = LineSearchOptimizerType::Pointer;
using typename Superclass1::ParametersType;
using LineSearchOptimizerType = itk::LineSearchOptimizer;
using LineSearchOptimizerPointer = LineSearchOptimizerType::Pointer;
using LineOptimizerType = itk::MoreThuenteLineSearchOptimizer;
using LineOptimizerPointer = LineOptimizerType::Pointer;
void
BeforeRegistration() override;
void
BeforeEachResolution() override;
void
AfterEachResolution() override;
void
AfterEachIteration() override;
void
AfterRegistration() override;
void
StartOptimization() override;
virtual void
LBFGSUpdate();
void
AdvanceOneStep() override;
void
ResumeOptimization() override;
void
MetricErrorResponse(itk::ExceptionObject & err) override;
void
StopOptimization() override;
itkSetMacro(AutomaticParameterEstimation, bool);
itkGetConstMacro(AutomaticParameterEstimation, bool);
itkSetMacro(AutomaticLBFGSStepsizeEstimation, bool);
itkGetConstMacro(AutomaticLBFGSStepsizeEstimation, bool);
itkSetMacro(MaximumStepLength, double);
itkGetConstMacro(MaximumStepLength, double);
itkSetMacro(MaximumNumberOfSamplingAttempts, SizeValueType);
itkGetConstReferenceMacro(MaximumNumberOfSamplingAttempts, SizeValueType);
using ThreadIdType = unsigned int;
void
SetNumberOfWorkUnits(ThreadIdType numberOfThreads)
{
this->m_Threader->SetNumberOfWorkUnits(numberOfThreads);
}
protected:
using FixedImageType = typename RegistrationType::FixedImageType;
using MovingImageType = typename RegistrationType::MovingImageType;
using FixedImageRegionType = typename FixedImageType::RegionType;
using FixedImageIndexType = typename FixedImageType::IndexType;
using FixedImagePointType = typename FixedImageType::PointType;
using itkRegistrationType = typename RegistrationType::ITKBaseType;
using TransformType = typename itkRegistrationType::TransformType;
using JacobianType = typename TransformType::JacobianType;
using ComputeJacobianTermsType = itk::ComputeJacobianTerms<FixedImageType, TransformType>;
using JacobianValueType = typename JacobianType::ValueType;
using typename Superclass2::SettingsType;
using typename Superclass2::SettingsVectorType;
using ComputeDisplacementDistributionType = itk::ComputeDisplacementDistribution<FixedImageType, TransformType>;
using ImageSamplerBaseType = itk::ImageSamplerBase<FixedImageType>;
using ImageSamplerBasePointer = typename ImageSamplerBaseType::Pointer;
using ImageRandomSamplerBaseType = itk::ImageRandomSamplerBase<FixedImageType>;
using ImageRandomSamplerBasePointer = typename ImageRandomSamplerBaseType::Pointer;
using ImageRandomCoordinateSamplerType = itk::ImageRandomCoordinateSampler<FixedImageType>;
using ImageRandomCoordinateSamplerPointer = typename ImageRandomCoordinateSamplerType::Pointer;
using ImageSampleType = typename ImageSamplerBaseType::ImageSampleType;
using ImageRandomSamplerType = itk::ImageRandomSampler<FixedImageType>;
using ImageRandomSamplerPointer = typename ImageRandomSamplerType::Pointer;
using ImageRadomSampleContainerType = typename ImageRandomSamplerType::ImageSampleContainerType;
using ImageRadomSampleContainerPointer = typename ImageRadomSampleContainerType::Pointer;
using ImageGridSamplerType = itk::ImageGridSampler<FixedImageType>;
using ImageGridSamplerPointer = typename ImageGridSamplerType::Pointer;
using ImageSampleContainerType = typename ImageGridSamplerType::ImageSampleContainerType;
using ImageSampleContainerPointer = typename ImageSampleContainerType::Pointer;
using RandomGeneratorType = itk::Statistics::MersenneTwisterRandomVariateGenerator;
using TransformJacobianType = JacobianType;
itkStaticConstMacro(FixedImageDimension, unsigned int, FixedImageType::ImageDimension);
itkStaticConstMacro(MovingImageDimension, unsigned int, MovingImageType::ImageDimension);
using CoordinateRepresentationType = typename TransformType::ScalarType;
using AdvancedTransformType =
itk::AdvancedTransform<CoordinateRepresentationType, Self::FixedImageDimension, Self::MovingImageDimension>;
using NonZeroJacobianIndicesType = typename AdvancedTransformType::NonZeroJacobianIndicesType;
using RhoType = itk::Array<double>;
using SType = std::vector<ParametersType>;
using YType = std::vector<DerivativeType>;
using DiagonalMatrixType = itk::Array<double>;
AdaptiveStochasticLBFGS();
~AdaptiveStochasticLBFGS() override = default;
SettingsVectorType m_SettingsVector;
SizeValueType m_NumberOfGradientMeasurements;
SizeValueType m_NumberOfJacobianMeasurements;
SizeValueType m_NumberOfSamplesForExactGradient;
typename AdvancedTransformType::Pointer m_AdvancedTransform;
typename RandomGeneratorType::Pointer m_RandomGenerator;
double m_SigmoidScaleFactor;
virtual void
AutomaticParameterEstimation();
virtual void
AutomaticParameterEstimationOriginal();
virtual void
AutomaticParameterEstimationUsingDisplacementDistribution();
virtual void
AutomaticLBFGSStepsizeEstimation();
virtual void
SampleGradients(const ParametersType & mu0, double perturbationSigma, double & gg, double & ee);
virtual void
GetScaledDerivativeWithExceptionHandling(const ParametersType & parameters, DerivativeType & derivative);
virtual void
AddRandomPerturbation(ParametersType & parameters, double sigma);
virtual void
StoreCurrentPoint(const ParametersType & step, const DerivativeType & grad_dif);
virtual void
ComputeDiagonalMatrix(DiagonalMatrixType & diag_H0);
virtual void
ComputeSearchDirection(const DerivativeType & gradient, DerivativeType & searchDir);
DerivativeType m_PreviousCurvatureGradient;
double m_NoiseFactor;
unsigned int m_CurrentT;
unsigned int m_PreviousT;
unsigned int m_Bound;
RhoType m_Rho;
SType m_S;
YType m_Y;
RhoType m_HessianFillValue;
double m_WindowScale;
private:
elxOverrideGetSelfMacro;
// multi-threaded AdvanceOneStep:
struct MultiThreaderParameterType
{
ParametersType * t_NewPosition;
Self * t_Optimizer;
};
static itk::ITK_THREAD_RETURN_TYPE
AdvanceOneStepThreaderCallback(void * arg);
inline void
ThreadedAdvanceOneStep(ThreadIdType threadId, ParametersType & newPosition);
bool m_AutomaticParameterEstimation;
bool m_AutomaticLBFGSStepsizeEstimation;
double m_MaximumStepLength;
SizeValueType m_MaximumNumberOfSamplingAttempts;
SizeValueType m_CurrentNumberOfSamplingAttempts;
SizeValueType m_PreviousErrorAtIteration;
bool m_AutomaticParameterEstimationDone;
SizeValueType m_OutsideIterations;
SizeValueType m_MaxBandCovSize;
SizeValueType m_NumberOfBandStructureSamples;
SizeValueType m_NumberOfInnerLoopSamples;
SizeValueType m_NumberOfSpatialSamples;
bool m_UseNoiseCompensation;
bool m_OriginalButSigmoidToDefault;
bool m_UseNoiseFactor;
bool m_UseAdaptiveLBFGSStepSizes;
}; // end class AdaptiveStochasticLBFGS
} // end namespace elastix
#ifndef ITK_MANUAL_INSTANTIATION
# include "elxAdaptiveStochasticLBFGS.hxx"
#endif
#endif // end #ifndef elxAdaptiveStochasticLBFGS_h
elastix::AdaptiveStochasticLBFGS::m_NoiseFactor
double m_NoiseFactor
Definition elxAdaptiveStochasticLBFGS.h:381
elastix::AdaptiveStochasticLBFGS::itkRegistrationType
typename RegistrationType::ITKBaseType itkRegistrationType
Definition elxAdaptiveStochasticLBFGS.h:241
elastix::AdaptiveStochasticLBFGS::m_OutsideIterations
SizeValueType m_OutsideIterations
Definition elxAdaptiveStochasticLBFGS.h:420
elastix::AdaptiveStochasticLBFGS::StartOptimization
void StartOptimization() override
elastix::AdaptiveStochasticLBFGS::JacobianType
typename TransformType::JacobianType JacobianType
Definition elxAdaptiveStochasticLBFGS.h:243
elastix::AdaptiveStochasticLBFGS::CoordinateRepresentationType
typename TransformType::ScalarType CoordinateRepresentationType
Definition elxAdaptiveStochasticLBFGS.h:278
elastix::AdaptiveStochasticLBFGS::AdvanceOneStep
void AdvanceOneStep() override
elastix::AdaptiveStochasticLBFGS::StoreCurrentPoint
virtual void StoreCurrentPoint(const ParametersType &step, const DerivativeType &grad_dif)
elastix::AdaptiveStochasticLBFGS::ComputeDiagonalMatrix
virtual void ComputeDiagonalMatrix(DiagonalMatrixType &diag_H0)
elastix::AdaptiveStochasticLBFGS::ImageRandomSamplerPointer
typename ImageRandomSamplerType::Pointer ImageRandomSamplerPointer
Definition elxAdaptiveStochasticLBFGS.h:261
elastix::AdaptiveStochasticLBFGS::m_Y
YType m_Y
Definition elxAdaptiveStochasticLBFGS.h:388
elastix::AdaptiveStochasticLBFGS::SetNumberOfWorkUnits
void SetNumberOfWorkUnits(ThreadIdType numberOfThreads)
Definition elxAdaptiveStochasticLBFGS.h:228
elastix::AdaptiveStochasticLBFGS::ITK_DISALLOW_COPY_AND_MOVE
ITK_DISALLOW_COPY_AND_MOVE(AdaptiveStochasticLBFGS)
elastix::AdaptiveStochasticLBFGS::itkStaticConstMacro
itkStaticConstMacro(MovingImageDimension, unsigned int, MovingImageType::ImageDimension)
elastix::AdaptiveStochasticLBFGS::m_Rho
RhoType m_Rho
Definition elxAdaptiveStochasticLBFGS.h:386
elastix::AdaptiveStochasticLBFGS::ImageRandomSamplerBaseType
itk::ImageRandomSamplerBase< FixedImageType > ImageRandomSamplerBaseType
Definition elxAdaptiveStochasticLBFGS.h:253
elastix::AdaptiveStochasticLBFGS::ITKBaseType
typename Superclass2::ITKBaseType ITKBaseType
Definition elxAdaptiveStochasticLBFGS.h:137
elastix::AdaptiveStochasticLBFGS::JacobianValueType
typename JacobianType::ValueType JacobianValueType
Definition elxAdaptiveStochasticLBFGS.h:245
elastix::AdaptiveStochasticLBFGS::NonZeroJacobianIndicesType
typename AdvancedTransformType::NonZeroJacobianIndicesType NonZeroJacobianIndicesType
Definition elxAdaptiveStochasticLBFGS.h:281
elastix::AdaptiveStochasticLBFGS::Self
AdaptiveStochasticLBFGS Self
Definition elxAdaptiveStochasticLBFGS.h:111
elastix::AdaptiveStochasticLBFGS::AdaptiveStochasticLBFGS
AdaptiveStochasticLBFGS()
elastix::AdaptiveStochasticLBFGS::m_WindowScale
double m_WindowScale
Definition elxAdaptiveStochasticLBFGS.h:390
elastix::AdaptiveStochasticLBFGS::AutomaticParameterEstimation
virtual void AutomaticParameterEstimation()
elastix::AdaptiveStochasticLBFGS::m_SettingsVector
SettingsVectorType m_SettingsVector
Definition elxAdaptiveStochasticLBFGS.h:293
elastix::AdaptiveStochasticLBFGS::AfterEachIteration
void AfterEachIteration() override
elastix::AdaptiveStochasticLBFGS::ImageSampleContainerPointer
typename ImageSampleContainerType::Pointer ImageSampleContainerPointer
Definition elxAdaptiveStochasticLBFGS.h:269
elastix::AdaptiveStochasticLBFGS::ImageGridSamplerType
itk::ImageGridSampler< FixedImageType > ImageGridSamplerType
Definition elxAdaptiveStochasticLBFGS.h:266
elastix::AdaptiveStochasticLBFGS::LineSearchOptimizerType
itk::LineSearchOptimizer LineSearchOptimizerType
Definition elxAdaptiveStochasticLBFGS.h:147
elastix::AdaptiveStochasticLBFGS::RhoType
itk::Array< double > RhoType
Definition elxAdaptiveStochasticLBFGS.h:284
elastix::AdaptiveStochasticLBFGS::ComputeDisplacementDistributionType
itk::ComputeDisplacementDistribution< FixedImageType, TransformType > ComputeDisplacementDistributionType
Definition elxAdaptiveStochasticLBFGS.h:248
elastix::AdaptiveStochasticLBFGS::ImageRandomSamplerType
itk::ImageRandomSampler< FixedImageType > ImageRandomSamplerType
Definition elxAdaptiveStochasticLBFGS.h:260
elastix::AdaptiveStochasticLBFGS::ThreadedAdvanceOneStep
void ThreadedAdvanceOneStep(ThreadIdType threadId, ParametersType &newPosition)
elastix::AdaptiveStochasticLBFGS::Pointer
itk::SmartPointer< Self > Pointer
Definition elxAdaptiveStochasticLBFGS.h:114
elastix::AdaptiveStochasticLBFGS::ImageSampleContainerType
typename ImageGridSamplerType::ImageSampleContainerType ImageSampleContainerType
Definition elxAdaptiveStochasticLBFGS.h:268
elastix::AdaptiveStochasticLBFGS::ThreadIdType
unsigned int ThreadIdType
Definition elxAdaptiveStochasticLBFGS.h:224
elastix::AdaptiveStochasticLBFGS::AdvanceOneStepThreaderCallback
static itk::ITK_THREAD_RETURN_TYPE AdvanceOneStepThreaderCallback(void *arg)
elastix::AdaptiveStochasticLBFGS::ComputeSearchDirection
virtual void ComputeSearchDirection(const DerivativeType &gradient, DerivativeType &searchDir)
elastix::AdaptiveStochasticLBFGS::m_AutomaticLBFGSStepsizeEstimation
bool m_AutomaticLBFGSStepsizeEstimation
Definition elxAdaptiveStochasticLBFGS.h:411
elastix::AdaptiveStochasticLBFGS::Superclass1
AdaptiveStochasticLBFGSOptimizer Superclass1
Definition elxAdaptiveStochasticLBFGS.h:112
elastix::AdaptiveStochasticLBFGS::ResumeOptimization
void ResumeOptimization() override
elastix::AdaptiveStochasticLBFGS::m_OriginalButSigmoidToDefault
bool m_OriginalButSigmoidToDefault
Definition elxAdaptiveStochasticLBFGS.h:430
elastix::AdaptiveStochasticLBFGS::AutomaticLBFGSStepsizeEstimation
virtual void AutomaticLBFGSStepsizeEstimation()
elastix::AdaptiveStochasticLBFGS::SizeValueType
itk::SizeValueType SizeValueType
Definition elxAdaptiveStochasticLBFGS.h:138
elastix::AdaptiveStochasticLBFGS::elxClassNameMacro
elxClassNameMacro("AdaptiveStochasticLBFGS")
elastix::AdaptiveStochasticLBFGS::m_SigmoidScaleFactor
double m_SigmoidScaleFactor
Definition elxAdaptiveStochasticLBFGS.h:306
elastix::AdaptiveStochasticLBFGS::SType
std::vector< ParametersType > SType
Definition elxAdaptiveStochasticLBFGS.h:285
elastix::AdaptiveStochasticLBFGS::StopOptimization
void StopOptimization() override
elastix::AdaptiveStochasticLBFGS::m_UseAdaptiveLBFGSStepSizes
bool m_UseAdaptiveLBFGSStepSizes
Definition elxAdaptiveStochasticLBFGS.h:433
elastix::AdaptiveStochasticLBFGS::m_RandomGenerator
RandomGeneratorType::Pointer m_RandomGenerator
Definition elxAdaptiveStochasticLBFGS.h:304
elastix::AdaptiveStochasticLBFGS::m_MaximumNumberOfSamplingAttempts
SizeValueType m_MaximumNumberOfSamplingAttempts
Definition elxAdaptiveStochasticLBFGS.h:415
elastix::AdaptiveStochasticLBFGS::TransformJacobianType
JacobianType TransformJacobianType
Definition elxAdaptiveStochasticLBFGS.h:275
elastix::AdaptiveStochasticLBFGS::ComputeJacobianTermsType
itk::ComputeJacobianTerms< FixedImageType, TransformType > ComputeJacobianTermsType
Definition elxAdaptiveStochasticLBFGS.h:244
elastix::AdaptiveStochasticLBFGS::ImageRandomCoordinateSamplerType
itk::ImageRandomCoordinateSampler< FixedImageType > ImageRandomCoordinateSamplerType
Definition elxAdaptiveStochasticLBFGS.h:255
elastix::AdaptiveStochasticLBFGS::AddRandomPerturbation
virtual void AddRandomPerturbation(ParametersType &parameters, double sigma)
elastix::AdaptiveStochasticLBFGS::m_PreviousErrorAtIteration
SizeValueType m_PreviousErrorAtIteration
Definition elxAdaptiveStochasticLBFGS.h:417
elastix::AdaptiveStochasticLBFGS::DiagonalMatrixType
itk::Array< double > DiagonalMatrixType
Definition elxAdaptiveStochasticLBFGS.h:287
elastix::AdaptiveStochasticLBFGS::AdvancedTransformType
itk::AdvancedTransform< CoordinateRepresentationType, Self::FixedImageDimension, Self::MovingImageDimension > AdvancedTransformType
Definition elxAdaptiveStochasticLBFGS.h:279
elastix::AdaptiveStochasticLBFGS::FixedImagePointType
typename FixedImageType::PointType FixedImagePointType
Definition elxAdaptiveStochasticLBFGS.h:240
elastix::AdaptiveStochasticLBFGS::m_CurrentT
unsigned int m_CurrentT
Definition elxAdaptiveStochasticLBFGS.h:382
elastix::AdaptiveStochasticLBFGS::LineOptimizerPointer
LineOptimizerType::Pointer LineOptimizerPointer
Definition elxAdaptiveStochasticLBFGS.h:151
elastix::AdaptiveStochasticLBFGS::m_UseNoiseCompensation
bool m_UseNoiseCompensation
Definition elxAdaptiveStochasticLBFGS.h:429
elastix::AdaptiveStochasticLBFGS::TransformType
typename itkRegistrationType::TransformType TransformType
Definition elxAdaptiveStochasticLBFGS.h:242
elastix::AdaptiveStochasticLBFGS::ImageGridSamplerPointer
typename ImageGridSamplerType::Pointer ImageGridSamplerPointer
Definition elxAdaptiveStochasticLBFGS.h:267
elastix::AdaptiveStochasticLBFGS::m_PreviousCurvatureGradient
DerivativeType m_PreviousCurvatureGradient
Definition elxAdaptiveStochasticLBFGS.h:379
elastix::AdaptiveStochasticLBFGS::FixedImageRegionType
typename FixedImageType::RegionType FixedImageRegionType
Definition elxAdaptiveStochasticLBFGS.h:238
elastix::AdaptiveStochasticLBFGS::Superclass2
OptimizerBase< TElastix > Superclass2
Definition elxAdaptiveStochasticLBFGS.h:113
elastix::AdaptiveStochasticLBFGS::GetScaledDerivativeWithExceptionHandling
virtual void GetScaledDerivativeWithExceptionHandling(const ParametersType &parameters, DerivativeType &derivative)
elastix::AdaptiveStochasticLBFGS::BeforeEachResolution
void BeforeEachResolution() override
elastix::AdaptiveStochasticLBFGS::m_NumberOfSpatialSamples
SizeValueType m_NumberOfSpatialSamples
Definition elxAdaptiveStochasticLBFGS.h:426
elastix::AdaptiveStochasticLBFGS::ImageSamplerBaseType
itk::ImageSamplerBase< FixedImageType > ImageSamplerBaseType
Definition elxAdaptiveStochasticLBFGS.h:251
elastix::AdaptiveStochasticLBFGS::itkStaticConstMacro
itkStaticConstMacro(FixedImageDimension, unsigned int, FixedImageType::ImageDimension)
elastix::AdaptiveStochasticLBFGS::AutomaticParameterEstimationOriginal
virtual void AutomaticParameterEstimationOriginal()
elastix::AdaptiveStochasticLBFGS::ImageSampleType
typename ImageSamplerBaseType::ImageSampleType ImageSampleType
Definition elxAdaptiveStochasticLBFGS.h:257
elastix::AdaptiveStochasticLBFGS::ImageRadomSampleContainerPointer
typename ImageRadomSampleContainerType::Pointer ImageRadomSampleContainerPointer
Definition elxAdaptiveStochasticLBFGS.h:263
elastix::AdaptiveStochasticLBFGS::MovingImageType
typename RegistrationType::MovingImageType MovingImageType
Definition elxAdaptiveStochasticLBFGS.h:236
elastix::AdaptiveStochasticLBFGS::SampleGradients
virtual void SampleGradients(const ParametersType &mu0, double perturbationSigma, double &gg, double &ee)
elastix::AdaptiveStochasticLBFGS::LineOptimizerType
itk::MoreThuenteLineSearchOptimizer LineOptimizerType
Definition elxAdaptiveStochasticLBFGS.h:150
elastix::AdaptiveStochasticLBFGS::m_UseNoiseFactor
bool m_UseNoiseFactor
Definition elxAdaptiveStochasticLBFGS.h:431
elastix::AdaptiveStochasticLBFGS::m_AutomaticParameterEstimationDone
bool m_AutomaticParameterEstimationDone
Definition elxAdaptiveStochasticLBFGS.h:418
elastix::AdaptiveStochasticLBFGS::ImageSamplerBasePointer
typename ImageSamplerBaseType::Pointer ImageSamplerBasePointer
Definition elxAdaptiveStochasticLBFGS.h:252
elastix::AdaptiveStochasticLBFGS::ImageRandomCoordinateSamplerPointer
typename ImageRandomCoordinateSamplerType::Pointer ImageRandomCoordinateSamplerPointer
Definition elxAdaptiveStochasticLBFGS.h:256
elastix::AdaptiveStochasticLBFGS::AfterEachResolution
void AfterEachResolution() override
elastix::AdaptiveStochasticLBFGS::SettingsVectorType
typename std::vector< SettingsType > SettingsVectorType
Definition elxOptimizerBase.h:133
elastix::AdaptiveStochasticLBFGS::m_S
SType m_S
Definition elxAdaptiveStochasticLBFGS.h:387
elastix::AdaptiveStochasticLBFGS::m_NumberOfBandStructureSamples
SizeValueType m_NumberOfBandStructureSamples
Definition elxAdaptiveStochasticLBFGS.h:424
elastix::AdaptiveStochasticLBFGS::AutomaticParameterEstimationUsingDisplacementDistribution
virtual void AutomaticParameterEstimationUsingDisplacementDistribution()
elastix::AdaptiveStochasticLBFGS::ImageRadomSampleContainerType
typename ImageRandomSamplerType::ImageSampleContainerType ImageRadomSampleContainerType
Definition elxAdaptiveStochasticLBFGS.h:262
elastix::AdaptiveStochasticLBFGS::m_HessianFillValue
RhoType m_HessianFillValue
Definition elxAdaptiveStochasticLBFGS.h:389
elastix::AdaptiveStochasticLBFGS::YType
std::vector< DerivativeType > YType
Definition elxAdaptiveStochasticLBFGS.h:286
elastix::AdaptiveStochasticLBFGS::ConstPointer
itk::SmartPointer< const Self > ConstPointer
Definition elxAdaptiveStochasticLBFGS.h:115
elastix::AdaptiveStochasticLBFGS::FixedImageType
typename RegistrationType::FixedImageType FixedImageType
Definition elxAdaptiveStochasticLBFGS.h:235
elastix::AdaptiveStochasticLBFGS::m_Bound
unsigned int m_Bound
Definition elxAdaptiveStochasticLBFGS.h:384
elastix::AdaptiveStochasticLBFGS::m_AutomaticParameterEstimation
bool m_AutomaticParameterEstimation
Definition elxAdaptiveStochasticLBFGS.h:410
elastix::AdaptiveStochasticLBFGS::ImageRandomSamplerBasePointer
typename ImageRandomSamplerBaseType::Pointer ImageRandomSamplerBasePointer
Definition elxAdaptiveStochasticLBFGS.h:254
elastix::AdaptiveStochasticLBFGS::LBFGSUpdate
virtual void LBFGSUpdate()
elastix::AdaptiveStochasticLBFGS::m_CurrentNumberOfSamplingAttempts
SizeValueType m_CurrentNumberOfSamplingAttempts
Definition elxAdaptiveStochasticLBFGS.h:416
elastix::AdaptiveStochasticLBFGS::BeforeRegistration
void BeforeRegistration() override
elastix::AdaptiveStochasticLBFGS::m_AdvancedTransform
AdvancedTransformType::Pointer m_AdvancedTransform
Definition elxAdaptiveStochasticLBFGS.h:301
elastix::AdaptiveStochasticLBFGS::m_PreviousT
unsigned int m_PreviousT
Definition elxAdaptiveStochasticLBFGS.h:383
elastix::AdaptiveStochasticLBFGS::m_NumberOfJacobianMeasurements
SizeValueType m_NumberOfJacobianMeasurements
Definition elxAdaptiveStochasticLBFGS.h:297
elastix::AdaptiveStochasticLBFGS::m_MaximumStepLength
double m_MaximumStepLength
Definition elxAdaptiveStochasticLBFGS.h:412
elastix::AdaptiveStochasticLBFGS::m_NumberOfGradientMeasurements
SizeValueType m_NumberOfGradientMeasurements
Definition elxAdaptiveStochasticLBFGS.h:296
elastix::AdaptiveStochasticLBFGS::RandomGeneratorType
itk::Statistics::MersenneTwisterRandomVariateGenerator RandomGeneratorType
Definition elxAdaptiveStochasticLBFGS.h:272
elastix::AdaptiveStochasticLBFGS::AfterRegistration
void AfterRegistration() override
elastix::AdaptiveStochasticLBFGS::FixedImageIndexType
typename FixedImageType::IndexType FixedImageIndexType
Definition elxAdaptiveStochasticLBFGS.h:239
elastix::AdaptiveStochasticLBFGS::m_MaxBandCovSize
SizeValueType m_MaxBandCovSize
Definition elxAdaptiveStochasticLBFGS.h:423
elastix::AdaptiveStochasticLBFGS::~AdaptiveStochasticLBFGS
~AdaptiveStochasticLBFGS() override=default
elastix::AdaptiveStochasticLBFGS::m_NumberOfSamplesForExactGradient
SizeValueType m_NumberOfSamplesForExactGradient
Definition elxAdaptiveStochasticLBFGS.h:298
elastix::AdaptiveStochasticLBFGS::MetricErrorResponse
void MetricErrorResponse(itk::ExceptionObject &err) override
elastix::AdaptiveStochasticLBFGS::elxOverrideGetSelfMacro
elxOverrideGetSelfMacro
Definition elxAdaptiveStochasticLBFGS.h:393
elastix::AdaptiveStochasticLBFGS::m_NumberOfInnerLoopSamples
SizeValueType m_NumberOfInnerLoopSamples
Definition elxAdaptiveStochasticLBFGS.h:425
elastix::AdaptiveStochasticLBFGS::LineSearchOptimizerPointer
LineSearchOptimizerType::Pointer LineSearchOptimizerPointer
Definition elxAdaptiveStochasticLBFGS.h:149
elastix::OptimizerBase::OptimizerBase
OptimizerBase()=default
elastix::OptimizerBase::RegistrationType
typename ElastixType::RegistrationBaseType RegistrationType
Definition elxBaseComponentSE.h:62
elastix::OptimizerBase::ElastixType
TElastix ElastixType
Definition elxBaseComponentSE.h:57
elastix::OptimizerBase::ITKBaseType
itk::Optimizer ITKBaseType
Definition elxOptimizerBase.h:70
elastix::OptimizerBase::SettingsVectorType
typename std::vector< SettingsType > SettingsVectorType
Definition elxOptimizerBase.h:133
elastix::OptimizerBase::ParametersType
typename ITKBaseType::ParametersType ParametersType
Definition elxOptimizerBase.h:73
int
itk::AdaptiveStochasticLBFGSOptimizer
Definition itkAdaptiveStochasticLBFGSOptimizer.h:70
itk::AdaptiveStochasticLBFGSOptimizer::AdaptiveStochasticLBFGSOptimizer
AdaptiveStochasticLBFGSOptimizer()
itk::AdvancedTransform
Transform maps points, vectors and covariant vectors from an input space to an output space.
Definition itkAdvancedTransform.h:84
itk::AdvancedTransform< CoordinateRepresentationType, Self::FixedImageDimension, Self::MovingImageDimension >::Pointer
SmartPointer< Self > Pointer
Definition itkAdvancedTransform.h:91
itk::AdvancedTransform< CoordinateRepresentationType, Self::FixedImageDimension, Self::MovingImageDimension >::NonZeroJacobianIndicesType
std::vector< unsigned long > NonZeroJacobianIndicesType
Definition itkAdvancedTransform.h:133
itk::ComputeDisplacementDistribution
This is a helper class for the automatic parameter estimation of the ASGD optimizer.
Definition itkComputeDisplacementDistribution.h:49
itk::ComputeJacobianTerms
This is a helper class for the automatic parameter estimation of the ASGD optimizer.
Definition itkComputeJacobianTerms.h:38
itk::ImageGridSampler
Samples image voxels on a regular grid.
Definition itkImageGridSampler.h:46
itk::ImageGridSampler< FixedImageType >::ImageSampleContainerType
VectorDataContainer< std::vcl_size_t, ImageSampleType > ImageSampleContainerType
itk::ImageGridSampler< FixedImageType >::Pointer
SmartPointer< Self > Pointer
Definition itkImageGridSampler.h:53
itk::ImageRandomCoordinateSampler
Samples an image by randomly composing a set of physical coordinates.
Definition itkImageRandomCoordinateSampler.h:41
itk::ImageRandomCoordinateSampler< FixedImageType >::Pointer
SmartPointer< Self > Pointer
Definition itkImageRandomCoordinateSampler.h:48
itk::ImageRandomSamplerBase
This class is a base class for any image sampler that randomly picks samples.
Definition itkImageRandomSamplerBase.h:39
itk::ImageRandomSamplerBase< FixedImageType >::Pointer
SmartPointer< Self > Pointer
Definition itkImageRandomSamplerBase.h:46
itk::ImageRandomSampler
Samples randomly some voxels of an image.
Definition itkImageRandomSampler.h:40
itk::ImageRandomSampler< FixedImageType >::Pointer
SmartPointer< Self > Pointer
Definition itkImageRandomSampler.h:47
itk::ImageSamplerBase
This class is a base class for any image sampler.
Definition itkImageSamplerBase.h:44
itk::ImageSamplerBase< FixedImageType >::ImageSampleType
ImageSample< InputImageType > ImageSampleType
Definition itkImageSamplerBase.h:76
itk::ImageSamplerBase< FixedImageType >::ImageSampleContainerType
VectorDataContainer< std::vcl_size_t, ImageSampleType > ImageSampleContainerType
Definition itkImageSamplerBase.h:77
itk::ImageSamplerBase< FixedImageType >::Pointer
SmartPointer< Self > Pointer
Definition itkImageSamplerBase.h:51
itk::LineSearchOptimizer
A base class for LineSearch optimizers.
Definition itkLineSearchOptimizer.h:38
itk::LineSearchOptimizer::Pointer
SmartPointer< Self > Pointer
Definition itkLineSearchOptimizer.h:44
itk::MoreThuenteLineSearchOptimizer
ITK version of the MoreThuente line search algorithm.
Definition itkMoreThuenteLineSearchOptimizer.h:72
itk::MoreThuenteLineSearchOptimizer::Pointer
SmartPointer< Self > Pointer
Definition itkMoreThuenteLineSearchOptimizer.h:78
itk::StochasticGradientDescentOptimizer::StopConditionType
StopConditionType
Definition itkStochasticGradientDescentOptimizer.h:83
itk::StochasticGradientDescentOptimizer::m_Threader
MultiThreaderBase::Pointer m_Threader
Definition itkStochasticGradientDescentOptimizer.h:193
elxIncludes.h
elxProgressCommand.h
itkAdaptiveStochasticLBFGSOptimizer.h
itkAdvancedTransform.h
itkComputeDisplacementDistribution.h
itkComputeJacobianTerms.h
itkImageRandomSampler.h
itkLineSearchOptimizer.h
itkMoreThuenteLineSearchOptimizer.h
elastix
Definition elxDefaultConstruct.h:25
elastix::AdaptiveStochasticLBFGS::MultiThreaderParameterType
Definition elxAdaptiveStochasticLBFGS.h:397
elastix::AdaptiveStochasticLBFGS::MultiThreaderParameterType::t_Optimizer
Self * t_Optimizer
Definition elxAdaptiveStochasticLBFGS.h:399
elastix::AdaptiveStochasticLBFGS::MultiThreaderParameterType::t_NewPosition
ParametersType * t_NewPosition
Definition elxAdaptiveStochasticLBFGS.h:398
elastix::OptimizerBase::SettingsType
Definition elxOptimizerBase.h:130

Generated on 1768596610 for elastix by 1.15.0 |