[Insight-users] (no subject)
Emma Saunders
emmasaunders123 at gmail.com
Mon Sep 30 09:06:15 EDT 2013
LBFGSB optimizer number of iterations printout error
Hi all,
Im printing out values of metric following Bspline registrations, using an
observer connected to the optimizer.
However when using boptimizer->SetMaximumNumberOfIterations( 2 );
I actually get 8 values printed out: see below. The command iteration
update code is also attched. At first I thought it was because I use
multiple observers during each multiresolution step but also
removeallobservers() between each multi layer step. Any suggestions
appreciated?
Starting Registration with Medium resolution transform
1.07399e+06
bspline
1.06241e+06
bspline
1.01962e+06
bspline
1.01962e+06
bspline
895448
bspline
895448
bspline
878673
bspline
878673
bspline
//This is for B spline
class BCommandIterationUpdate : public itk::Command
{
public:
typedef BCommandIterationUpdate Selfb;
typedef itk::Command Superclassb;
typedef itk::SmartPointer<Selfb> Pointerb;
itkNewMacro( Selfb );
protected:
BCommandIterationUpdate() {};
public:
typedef itk::LBFGSBOptimizer bOptimizerType;
typedef const bOptimizerType * bOptimizerPointer;
void Execute(itk::Object *caller, const itk::EventObject & event)
{
Execute( (const itk::Object *)caller, event);
}
void Execute(const itk::Object * object, const itk::EventObject & event)
{
bOptimizerPointer boptimizer =
dynamic_cast< bOptimizerPointer >( object );
if( ! itk::IterationEvent().CheckEvent( &event ) )
{
return;
}
//std::cout << optimizer->GetCurrentIteration() << " ";
std::cout << boptimizer->GetValue() << " " <<std::endl;
std::cout << "bspline" <<std::endl;
//std::cout << optimizer->GetCurrentPosition() << std::endl;
}
};
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.itk.org/pipermail/insight-users/attachments/20130930/a5ff9b1e/attachment.htm>
More information about the Insight-users
mailing list