18#ifndef elxAdaptiveStochasticGradientDescent_h
19#define elxAdaptiveStochasticGradientDescent_h
28#include "itkMersenneTwisterRandomVariateGenerator.h"
192template <
class TElastix>
220 using Superclass1::CostFunctionType;
221 using Superclass1::CostFunctionPointer;
231 using typename Superclass1::ParametersType;
277 itkSetMacro(AutomaticParameterEstimation,
bool);
278 itkGetConstMacro(AutomaticParameterEstimation,
bool);
281 itkSetMacro(MaximumStepLength,
double);
282 itkGetConstMacro(MaximumStepLength,
double);
418#ifndef ITK_MANUAL_INSTANTIATION
419# include "elxAdaptiveStochasticGradientDescent.hxx"
A gradient descent optimizer with an adaptive gain.
SizeValueType m_NumberOfBandStructureSamples
SizeValueType m_CurrentNumberOfSamplingAttempts
virtual void AutomaticParameterEstimationOriginal()
RandomGeneratorPointer m_RandomGenerator
virtual void AutomaticParameterEstimationUsingDisplacementDistribution()
typename ImageGridSamplerType::ImageSampleContainerType ImageSampleContainerType
void BeforeEachResolution() override
void ResumeOptimization() override
typename RegistrationType::ITKBaseType itkRegistrationType
typename TransformType::ScalarType CoordinateRepresentationType
typename itkRegistrationType::TransformType TransformType
virtual void SampleGradients(const ParametersType &mu0, double perturbationSigma, double &gg, double &ee)
typename ImageSamplerBaseType::Pointer ImageSamplerBasePointer
SizeValueType m_NumberOfGradientMeasurements
double m_MaximumStepLength
void AfterEachIteration() override
void StartOptimization() override
typename RandomGeneratorType::Pointer RandomGeneratorPointer
typename FixedImageType::IndexType FixedImageIndexType
typename RegistrationType::FixedImageType FixedImageType
AdvancedTransformPointer m_AdvancedTransform
typename ImageRandomSamplerBaseType::Pointer ImageRandomSamplerBasePointer
void AfterRegistration() override
SizeValueType m_NumberOfJacobianMeasurements
typename ImageGridSamplerType::Pointer ImageGridSamplerPointer
typename AdvancedTransformType::NonZeroJacobianIndicesType NonZeroJacobianIndicesType
typename TransformType::JacobianType JacobianType
SizeValueType m_MaximumNumberOfSamplingAttempts
bool m_UseNoiseCompensation
JacobianType TransformJacobianType
itkStaticConstMacro(FixedImageDimension, unsigned int, FixedImageType::ImageDimension)
SizeValueType m_MaxBandCovSize
~AdaptiveStochasticGradientDescent() override=default
void AfterEachResolution() override
typename std::vector< SettingsType > SettingsVectorType
elxClassNameMacro("AdaptiveStochasticGradientDescent")
typename JacobianType::ValueType JacobianValueType
itk::Statistics::MersenneTwisterRandomVariateGenerator RandomGeneratorType
typename AdvancedTransformType::Pointer AdvancedTransformPointer
SizeValueType m_PreviousErrorAtIteration
bool m_AutomaticParameterEstimationDone
virtual void AddRandomPerturbation(ParametersType ¶meters, double sigma)
typename FixedImageType::RegionType FixedImageRegionType
virtual void AutomaticParameterEstimation()
ITK_DISALLOW_COPY_AND_MOVE(AdaptiveStochasticGradientDescent)
itkStaticConstMacro(MovingImageDimension, unsigned int, MovingImageType::ImageDimension)
itk::SmartPointer< const Self > ConstPointer
bool m_AutomaticParameterEstimation
typename ImageSampleContainerType::Pointer ImageSampleContainerPointer
double m_MaximumStepLengthRatio
itk::SizeValueType SizeValueType
void MetricErrorResponse(itk::ExceptionObject &err) override
typename Superclass2::ITKBaseType ITKBaseType
typename RegistrationType::MovingImageType MovingImageType
virtual void GetScaledDerivativeWithExceptionHandling(const ParametersType ¶meters, DerivativeType &derivative)
SizeValueType m_NumberOfSamplesForExactGradient
AdaptiveStochasticGradientDescent()
typename ImageRandomCoordinateSamplerType::Pointer ImageRandomCoordinateSamplerPointer
SettingsVectorType m_SettingsVector
double m_SigmoidScaleFactor
bool m_OriginalButSigmoidToDefault
void BeforeRegistration() override
typename FixedImageType::PointType FixedImagePointType
itk::SmartPointer< Self > Pointer
This class is the elastix base class for all Optimizers.
typename ElastixType::RegistrationBaseType RegistrationType
itk::Optimizer ITKBaseType
typename std::vector< SettingsType > SettingsVectorType
typename ITKBaseType::ParametersType ParametersType
This class implements a gradient descent optimizer with adaptive gain.
This is a helper class for the automatic parameter estimation of the ASGD optimizer.
This is a helper class for the automatic parameter estimation of the ASGD optimizer.
Samples image voxels on a regular grid.
Samples an image by randomly composing a set of physical coordinates.
This class is a base class for any image sampler that randomly picks samples.
This class is a base class for any image sampler.
Define a front-end to the STL "vector" container that conforms to the IndexedContainerInterface.