18#ifndef __elxPreconditionedStochasticGradientDescent_h
19#define __elxPreconditionedStochasticGradientDescent_h
29#include "itkMersenneTwisterRandomVariateGenerator.h"
177template<
class TElastix >
196 VoxelWiseASGDOptimizer );
261 itkSetMacro( AutomaticParameterEstimation,
bool );
262 itkGetConstMacro( AutomaticParameterEstimation,
bool );
265 itkSetMacro( MaximumStepLength,
double );
266 itkGetConstReferenceMacro( MaximumStepLength,
double );
269 itkSetClampMacro( RegularizationKappa,
double, 0.0, 1.0 );
270 itkGetConstReferenceMacro( RegularizationKappa,
double );
274 itkGetConstReferenceMacro( MaximumNumberOfSamplingAttempts,
SizeValueType );
335 itkGetStaticConstMacro( FixedImageDimension ),
388 double perturbationSigma,
double & gg,
double & ee );
428#ifndef ITK_MANUAL_INSTANTIATION
429#include "elxPreconditionedStochasticGradientDescent.hxx"
A class that deals with user given parameters and command line arguments.
This class is the elastix base class for all Optimizers.
Superclass::ConfigurationPointer ConfigurationPointer
itk::Optimizer ITKBaseType
Superclass::ElastixType ElastixType
Superclass::ElastixPointer ElastixPointer
Superclass::RegistrationPointer RegistrationPointer
Superclass::RegistrationType RegistrationType
A gradient descent optimizer with an adaptive gain.
Superclass2::RegistrationPointer RegistrationPointer
JacobianType::ValueType JacobianValueType
Superclass2::ITKBaseType ITKBaseType
SizeValueType m_NumberOfBandStructureSamples
OptimizerBase< TElastix > Superclass2
SizeValueType m_MaxBandCovSize
itk::SmartPointer< const Self > ConstPointer
virtual void PrintSettingsVector(const SettingsVectorType &settings) const
PreconditionedASGDOptimizer Superclass1
TransformType::JacobianType JacobianType
void StartOptimization(void) override
itk::ComputeDisplacementDistribution< FixedImageType, TransformType > ComputeDisplacementDistributionType
Superclass1::StopConditionType StopConditionType
virtual void GetScaledDerivativeWithExceptionHandling(const ParametersType ¶meters, DerivativeType &derivative)
PreconditionedStochasticGradientDescent()
~PreconditionedStochasticGradientDescent() override
void AdvanceOneStep(void) override
itk::ImageRandomSampler< FixedImageType > ImageRandomSamplerType
itk::Statistics::MersenneTwisterRandomVariateGenerator RandomGeneratorType
Superclass1::CostFunctionPointer CostFunctionPointer
SizeValueType m_NumberOfJacobianMeasurements
void operator=(const Self &)
itkStaticConstMacro(MovingImageDimension, unsigned int, MovingImageType::ImageDimension)
itk::ImageGridSampler< FixedImageType > ImageGridSamplerType
itk::ImageSamplerBase< FixedImageType > ImageSamplerBaseType
void AfterRegistration(void) override
AdvancedTransformType::NonZeroJacobianIndicesType NonZeroJacobianIndicesType
itk::ImageRandomSamplerBase< FixedImageType > ImageRandomSamplerBaseType
itkStaticConstMacro(FixedImageDimension, unsigned int, FixedImageType::ImageDimension)
Superclass2::ConfigurationPointer ConfigurationPointer
itkRegistrationType::TransformType TransformType
TransformType::ScalarType CoordinateRepresentationType
PreconditionedStochasticGradientDescent(const Self &)
RegistrationType::ITKBaseType itkRegistrationType
SizeValueType m_NumberOfGradientMeasurements
itk::SmartPointer< Self > Pointer
ImageRandomCoordinateSamplerType::Pointer ImageRandomCoordinateSamplerPointer
ImageSampleContainerType::Pointer ImageSampleContainerPointer
itk::ImageRandomCoordinateSampler< FixedImageType > ImageRandomCoordinateSamplerType
JacobianType TransformJacobianType
Superclass2::ElastixPointer ElastixPointer
void BeforeEachResolution(void) override
virtual void SampleGradients(const ParametersType &mu0, double perturbationSigma, double &gg, double &ee)
ElastixType::FixedImageType OutputImageType
double m_RegularizationKappa
ImageGridSamplerType::ImageSampleContainerType ImageSampleContainerType
itk::ComputePreconditionerUsingDisplacementDistribution< FixedImageType, TransformType > PreconditionerEstimationType
FixedImageType::RegionType FixedImageRegionType
SizeValueType m_NumberOfSpatialSamples
SizeValueType m_PreviousErrorAtIteration
bool m_AutomaticParameterEstimation
SettingsVectorType m_SettingsVector
Superclass2::RegistrationType RegistrationType
FixedImageType::PointType FixedImagePointType
RegistrationType::FixedImageType FixedImageType
bool m_UseNoiseCompensation
void AfterEachIteration(void) override
SizeValueType m_MaximumNumberOfSamplingAttempts
RandomGeneratorPointer m_RandomGenerator
std::vector< SettingsType > SettingsVectorType
void AfterEachResolution(void) override
FixedImageType::IndexType FixedImageIndexType
bool m_OriginalButSigmoidToDefault
elxClassNameMacro("PreconditionedStochasticGradientDescent")
Superclass1::ParametersType ParametersType
Superclass2::ElastixType ElastixType
void BeforeRegistration(void) override
RandomGeneratorType::Pointer RandomGeneratorPointer
PreconditionedStochasticGradientDescent Self
double m_SigmoidScaleFactor
ImageRandomSamplerBaseType::Pointer ImageRandomSamplerBasePointer
double m_MaximumStepLengthRatio
itk::SizeValueType SizeValueType
SizeValueType m_NumberOfSamplesForPrecondition
ImageGridSamplerType::Pointer ImageGridSamplerPointer
AdvancedBSplineDeformableTransformType::Pointer BSplineTransformBasePointer
PreconditionerEstimationType::Pointer PreconditionerEstimationPointer
ProgressCommand::Pointer ProgressCommandPointer
void ResumeOptimization(void) override
AdvancedTransformPointer m_AdvancedTransform
SizeValueType m_CurrentNumberOfSamplingAttempts
itk::AdvancedBSplineDeformableTransformBase< CoordinateRepresentationType, itkGetStaticConstMacro(FixedImageDimension)> AdvancedBSplineDeformableTransformType
RegistrationType::MovingImageType MovingImageType
virtual void AutomaticPreconditionerEstimation(void)
SizeValueType m_NumberOfSamplesForNoiseCompensationFactor
ProgressCommand ProgressCommandType
AdvancedTransformType::Pointer AdvancedTransformPointer
Superclass2::ConfigurationType ConfigurationType
Superclass1::CostFunctionType CostFunctionType
virtual void CheckForAdvancedTransform(void)
itk::AdvancedTransform< CoordinateRepresentationType, itkGetStaticConstMacro(FixedImageDimension), itkGetStaticConstMacro(MovingImageDimension) > AdvancedTransformType
ImageRandomSamplerType::Pointer ImageRandomSamplerPointer
bool m_AutomaticParameterEstimationDone
void MetricErrorResponse(itk::ExceptionObject &err) override
double m_MaximumStepLength
virtual void AddRandomPerturbation(ParametersType ¶meters, double sigma)
ImageSamplerBaseType::Pointer ImageSamplerBasePointer
A specialized Command object for updating the progress of a filter.
itk::SmartPointer< Self > Pointer
This is a helper class for the automatic parameter estimation of the ASGD optimizer.
This is a helper class for the automatic estimation of a preconditioner for the FPSGD 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.
Samples randomly some voxels of an image.
This class is a base class for any image sampler.
This class implements a gradient descent optimizer with adaptive gain.
Superclass::StopConditionType StopConditionType
Superclass::CostFunctionType CostFunctionType
Superclass::ParametersType ParametersType
Superclass::ParametersType ParametersType
Superclass::DerivativeType DerivativeType
Define a front-end to the STL "vector" container that conforms to the IndexedContainerInterface.