[Insight-users] LBFGSBoptimizer and MI value
Serena Fabbri
fabbri at u.washington.edu
Wed Jul 1 17:08:27 EDT 2009
it works!
thank you very much!!
Serena.
On Wed, 1 Jul 2009, Luis Ibanez wrote:
> Hi Serena,
>
> You may want to try
>
> optimizer->GetCachedCurrentPosition();
>
> as listed in
>
>
http://public.kitware.com/Insight/Doxygen/html/classitk_1_1SingleValuedNonLinearVnlOptimizer.html
>
http://public.kitware.com/Insight/Doxygen/html/classitk_1_1SingleValuedNonLinearVnlOptimizer.html
#4f34714deb7bf14e7c712ef931304760
>
> and
> http://public.kitware.com/Insight/Doxygen/html/classitk_1_1LBFGSBOptimizer.html
>
>
>
> Regards,
>
>
> Luis
>
>
> --------------------------------------------------------------------------------
--
> On Wed, Jul 1, 2009 at 3:47 PM, Serena Fabbri <fabbri at u.washington.edu>wrote:
>
>>
>> Hi Luis and All,
>>
>> Thank you for your explanation. It is interesting to know the ITK history
>> too.
>> yes...it is true with 6x6x6 nodes I get a lot of parameters, anyway I used
>> optimizer->GetCurrentPosition()
>> and the result was a array of 0.
>> Could you suggest me another way to know the parameters?
>>
>> Thanks again.
>>
>> Serena.
>>
>>
>>
>> On Tue, 30 Jun 2009, Luis Ibanez wrote:
>>
>> Hi Serena,
>>>
>>> Thanks for the update.
>>>
>>> This is a long and sad story:
>>>
>>> It goes like this:
>>>
>>> * In the beginning we have ITK optimizers,
>>>
>>> * Then we wanted to expand the number of Optimizers
>>> and decided to write classes that take VNL optimizers
>>> and present them as ITK optimzers.
>>>
>>> * We can't insert code in the middle of VNL optimizers,
>>> and therefore, we can't directly invoke IterationEvents
>>> that will allow an ITK user to monitor an optimizer by
>>> using a Command/Observer
>>>
>>> * The workaround to this limitation was the following
>>> trick: Since we also have to wrap ITK cost functions
>>> to make them look like VNL cost functions, we setup
>>> a connection between the ITK wrapper of the VNL
>>> optimizer and the VNL warpper of the ITK cost function
>>> in such a way that *every* time that "GetValue()" or
>>> "GetValueAndDerivative()" is called in the Cost Function,
>>> we generate an IterationEvent indirectly.
>>>
>>> * The drawbacks of this method is what you are confronting:
>>>
>>> A) The values that the optimizer can report, has to be
>>> cached from previous invocations of the CostFunction
>>>
>>> B) Optimizers that perform multiple evaluations of the
>>> cost function per iteration, end up reporting multiple
>>> IterationEvents per iteration of the optimizer.
>>> This is the reason why you get repeated "optimizer
>>> iteration" numbers.
>>>
>>>
>>> --
>>>
>>> If you want to see the Transform parameters
>>> at every iteration you can call the method
>>>
>>>
>>> std::cout << optimizer->GetCurrentPosition()
>>>
>>>
>>> However, when working with BSplines, this
>>> is not particularly useful, given that you will
>>> get tens, or hundreds of values....
>>>
>>> For example, your BSpline has (3+3) = 6
>>> nodes along each dimension, for a total of
>>> 216 nodes, each one with three deformation
>>> values, for a total of 648 parameters.
>>>
>>>
>>> You are performing optimization in a parametric
>>> space of 648 dimensions.... :-)
>>>
>>>
>>> Regards,
>>>
>>>
>>> Luis
>>>
>>>
>>> ---------------------------------------------------------------------
>>> On Tue, Jun 30, 2009 at 5:38 PM, Serena Fabbri <fabbri at u.washington.edu
>>>> wrote:
>>>
>>>
>>>> Hi Luis and All,
>>>>
>>>> ok, i have replaced optimizer->GetValue() and it gives me numbers
>>>> different
>>>> from 0.
>>>> I have read in itk::SingleValuedNonLinearVnlOptimizer Class Reference,
>>>> that
>>>> it is not up-to-date value of MI...isn't it?
>>>> If you look the output, the iterations are 69, but it is repeated several
>>>> times....so I don't understand very well how many iterations the code
>>>> does.
>>>> Besides......could you suggest me a way to know the parameters values at
>>>> each iteration?
>>>>
>>>> Thank you very much.
>>>> Serena.
>>>>
>>>>
>>>> -------output-------------------
>>>>
>>>> gridSizeOnImage [3, 3, 3] gridBorderSize [3, 3, 3] totalGridSIze [6, 6,
>>>> 6]
>>>> gridOriginOffset [87.5, 127.5, 79.5]
>>>> gridOrigin [-87.5, -127.5, -79.5]
>>>> spacing [87.5, 127.5, 79.5]
>>>> numberOfParameters 648
>>>>
>>>> Starting Registration
>>>> Iter 0 CachedValue -0.135285 InfinityNormOfProjectedGradient 0
>>>> Iter 0 CachedValue -0.136816 InfinityNormOfProjectedGradient 0
>>>> Iter 0 CachedValue -0.136816 InfinityNormOfProjectedGradient
>>>> 0.000262062
>>>> Iter 1 CachedValue -0.138381 InfinityNormOfProjectedGradient
>>>> 0.000262062
>>>> Iter 1 CachedValue -0.138381 InfinityNormOfProjectedGradient
>>>> 0.000178985
>>>> Iter 2 CachedValue -0.139721 InfinityNormOfProjectedGradient
>>>> 0.000178985
>>>> Iter 2 CachedValue -0.139721 InfinityNormOfProjectedGradient
>>>> 0.000182089
>>>> Iter 3 CachedValue -0.141799 InfinityNormOfProjectedGradient
>>>> 0.000182089
>>>> Iter 3 CachedValue -0.141799 InfinityNormOfProjectedGradient
>>>> 0.000295439
>>>> Iter 4 CachedValue -0.140242 InfinityNormOfProjectedGradient
>>>> 0.000295439
>>>> Iter 4 CachedValue -0.142305 InfinityNormOfProjectedGradient
>>>> 0.000295439
>>>> Iter 4 CachedValue -0.142305 InfinityNormOfProjectedGradient
>>>> 0.000332698
>>>> Iter 5 CachedValue -0.144904 InfinityNormOfProjectedGradient
>>>> 0.000332698
>>>> Iter 5 CachedValue -0.144904 InfinityNormOfProjectedGradient
>>>> 0.000227115
>>>> Iter 6 CachedValue -0.143351 InfinityNormOfProjectedGradient
>>>> 0.000227115
>>>> Iter 6 CachedValue -0.145245 InfinityNormOfProjectedGradient
>>>> 0.000227115
>>>> Iter 6 CachedValue -0.145245 InfinityNormOfProjectedGradient
>>>> 0.000180015
>>>> Iter 7 CachedValue -0.145855 InfinityNormOfProjectedGradient
>>>> 0.000180015
>>>> Iter 7 CachedValue -0.145855 InfinityNormOfProjectedGradient
>>>> 0.000224301
>>>> Iter 8 CachedValue -0.146379 InfinityNormOfProjectedGradient
>>>> 0.000224301
>>>> Iter 8 CachedValue -0.146379 InfinityNormOfProjectedGradient
>>>> 0.000281225
>>>> Iter 9 CachedValue -0.146987 InfinityNormOfProjectedGradient
>>>> 0.000281225
>>>> Iter 9 CachedValue -0.146987 InfinityNormOfProjectedGradient
>>>> 0.000347015
>>>> Iter 10 CachedValue -0.148133 InfinityNormOfProjectedGradient
>>>> 0.000347015
>>>> Iter 10 CachedValue -0.148133 InfinityNormOfProjectedGradient
>>>> 0.000342164
>>>> Iter 11 CachedValue -0.149066 InfinityNormOfProjectedGradient
>>>> 0.000342164
>>>> Iter 11 CachedValue -0.149066 InfinityNormOfProjectedGradient
>>>> 0.000157566
>>>> Iter 12 CachedValue -0.149587 InfinityNormOfProjectedGradient
>>>> 0.000157566
>>>> Iter 12 CachedValue -0.149587 InfinityNormOfProjectedGradient
>>>> 0.000149334
>>>> Iter 13 CachedValue -0.149866 InfinityNormOfProjectedGradient
>>>> 0.000149334
>>>> Iter 13 CachedValue -0.15019 InfinityNormOfProjectedGradient
>>>> 0.000149334
>>>> Iter 13 CachedValue -0.15019 InfinityNormOfProjectedGradient
>>>> 0.000297405
>>>> Iter 14 CachedValue -0.149107 InfinityNormOfProjectedGradient
>>>> 0.000297405
>>>> Iter 14 CachedValue -0.150474 InfinityNormOfProjectedGradient
>>>> 0.000297405
>>>> Iter 14 CachedValue -0.150474 InfinityNormOfProjectedGradient
>>>> 0.000233087
>>>> Iter 15 CachedValue -0.150849 InfinityNormOfProjectedGradient
>>>> 0.000233087
>>>> Iter 15 CachedValue -0.150849 InfinityNormOfProjectedGradient
>>>> 0.000270985
>>>> Iter 16 CachedValue -0.151276 InfinityNormOfProjectedGradient
>>>> 0.000270985
>>>> Iter 16 CachedValue -0.151276 InfinityNormOfProjectedGradient
>>>> 0.000175098
>>>> Iter 17 CachedValue -0.151627 InfinityNormOfProjectedGradient
>>>> 0.000175098
>>>> Iter 17 CachedValue -0.151627 InfinityNormOfProjectedGradient
>>>> 0.000153631
>>>> Iter 18 CachedValue -0.151913 InfinityNormOfProjectedGradient
>>>> 0.000153631
>>>> Iter 18 CachedValue -0.151913 InfinityNormOfProjectedGradient
>>>> 0.000198165
>>>> Iter 19 CachedValue -0.153279 InfinityNormOfProjectedGradient
>>>> 0.000198165
>>>> Iter 19 CachedValue -0.153279 InfinityNormOfProjectedGradient
>>>> 0.000334519
>>>> Iter 20 CachedValue -0.154186 InfinityNormOfProjectedGradient
>>>> 0.000334519
>>>> Iter 20 CachedValue -0.154186 InfinityNormOfProjectedGradient
>>>> 0.000334793
>>>> Iter 21 CachedValue -0.154433 InfinityNormOfProjectedGradient
>>>> 0.000334793
>>>> Iter 21 CachedValue -0.154433 InfinityNormOfProjectedGradient
>>>> 0.000261072
>>>> Iter 22 CachedValue -0.154656 InfinityNormOfProjectedGradient
>>>> 0.000261072
>>>> Iter 22 CachedValue -0.154656 InfinityNormOfProjectedGradient
>>>> 0.000120058
>>>> Iter 23 CachedValue -0.154394 InfinityNormOfProjectedGradient
>>>> 0.000120058
>>>> Iter 23 CachedValue -0.154765 InfinityNormOfProjectedGradient
>>>> 0.000120058
>>>> Iter 23 CachedValue -0.154765 InfinityNormOfProjectedGradient
>>>> 0.000193124
>>>> Iter 24 CachedValue -0.15479 InfinityNormOfProjectedGradient
>>>> 0.000193124
>>>> Iter 24 CachedValue -0.15479 InfinityNormOfProjectedGradient
>>>> 0.000111046
>>>> Iter 25 CachedValue -0.155059 InfinityNormOfProjectedGradient
>>>> 0.000111046
>>>> Iter 25 CachedValue -0.155059 InfinityNormOfProjectedGradient
>>>> 0.000165312
>>>> Iter 26 CachedValue -0.155408 InfinityNormOfProjectedGradient
>>>> 0.000165312
>>>> Iter 26 CachedValue -0.155408 InfinityNormOfProjectedGradient
>>>> 0.000158262
>>>> Iter 27 CachedValue -0.155538 InfinityNormOfProjectedGradient
>>>> 0.000158262
>>>> Iter 27 CachedValue -0.155538 InfinityNormOfProjectedGradient
>>>> 9.14039e-05
>>>> Iter 28 CachedValue -0.155862 InfinityNormOfProjectedGradient
>>>> 9.14039e-05
>>>> Iter 28 CachedValue -0.155862 InfinityNormOfProjectedGradient
>>>> 0.000108369
>>>> Iter 29 CachedValue -0.156014 InfinityNormOfProjectedGradient
>>>> 0.000108369
>>>> Iter 29 CachedValue -0.156014 InfinityNormOfProjectedGradient
>>>> 6.96136e-05
>>>> Iter 30 CachedValue -0.15638 InfinityNormOfProjectedGradient
>>>> 6.96136e-05
>>>> Iter 30 CachedValue -0.15638 InfinityNormOfProjectedGradient
>>>> 0.000175598
>>>> Iter 31 CachedValue -0.15675 InfinityNormOfProjectedGradient
>>>> 0.000175598
>>>> Iter 31 CachedValue -0.15675 InfinityNormOfProjectedGradient
>>>> 0.000178462
>>>> Iter 32 CachedValue -0.15615 InfinityNormOfProjectedGradient
>>>> 0.000178462
>>>> Iter 32 CachedValue -0.156785 InfinityNormOfProjectedGradient
>>>> 0.000178462
>>>> Iter 32 CachedValue -0.156785 InfinityNormOfProjectedGradient
>>>> 0.000165292
>>>> Iter 33 CachedValue -0.156698 InfinityNormOfProjectedGradient
>>>> 0.000165292
>>>> Iter 33 CachedValue -0.156865 InfinityNormOfProjectedGradient
>>>> 0.000165292
>>>> Iter 33 CachedValue -0.156865 InfinityNormOfProjectedGradient
>>>> 0.000192639
>>>> Iter 34 CachedValue -0.157443 InfinityNormOfProjectedGradient
>>>> 0.000192639
>>>> Iter 34 CachedValue -0.157443 InfinityNormOfProjectedGradient
>>>> 0.000130335
>>>> Iter 35 CachedValue -0.157959 InfinityNormOfProjectedGradient
>>>> 0.000130335
>>>> Iter 35 CachedValue -0.157959 InfinityNormOfProjectedGradient
>>>> 0.000112771
>>>> Iter 36 CachedValue -0.158003 InfinityNormOfProjectedGradient
>>>> 0.000112771
>>>> Iter 36 CachedValue -0.158003 InfinityNormOfProjectedGradient
>>>> 0.000134055
>>>> Iter 37 CachedValue -0.158288 InfinityNormOfProjectedGradient
>>>> 0.000134055
>>>> Iter 37 CachedValue -0.158288 InfinityNormOfProjectedGradient
>>>> 6.71128e-05
>>>> Iter 38 CachedValue -0.158161 InfinityNormOfProjectedGradient
>>>> 6.71128e-05
>>>> Iter 38 CachedValue -0.158312 InfinityNormOfProjectedGradient
>>>> 6.71128e-05
>>>> Iter 38 CachedValue -0.158312 InfinityNormOfProjectedGradient
>>>> 7.5438e-05
>>>> Iter 39 CachedValue -0.158083 InfinityNormOfProjectedGradient
>>>> 7.5438e-05
>>>> Iter 39 CachedValue -0.158331 InfinityNormOfProjectedGradient
>>>> 7.5438e-05
>>>> Iter 39 CachedValue -0.158331 InfinityNormOfProjectedGradient
>>>> 5.54456e-05
>>>> Iter 40 CachedValue -0.158158 InfinityNormOfProjectedGradient
>>>> 5.54456e-05
>>>> Iter 40 CachedValue -0.158358 InfinityNormOfProjectedGradient
>>>> 5.54456e-05
>>>> Iter 40 CachedValue -0.158358 InfinityNormOfProjectedGradient
>>>> 7.92771e-05
>>>> Iter 41 CachedValue -0.158315 InfinityNormOfProjectedGradient
>>>> 7.92771e-05
>>>> Iter 41 CachedValue -0.158367 InfinityNormOfProjectedGradient
>>>> 7.92771e-05
>>>> Iter 41 CachedValue -0.158367 InfinityNormOfProjectedGradient
>>>> 7.79648e-05
>>>> Iter 42 CachedValue -0.158329 InfinityNormOfProjectedGradient
>>>> 7.79648e-05
>>>> Iter 42 CachedValue -0.158379 InfinityNormOfProjectedGradient
>>>> 7.79648e-05
>>>> Iter 42 CachedValue -0.158379 InfinityNormOfProjectedGradient
>>>> 8.3058e-05
>>>> Iter 43 CachedValue -0.158235 InfinityNormOfProjectedGradient
>>>> 8.3058e-05
>>>> Iter 43 CachedValue -0.158406 InfinityNormOfProjectedGradient
>>>> 8.3058e-05
>>>> Iter 43 CachedValue -0.158406 InfinityNormOfProjectedGradient
>>>> 6.6516e-05
>>>> Iter 44 CachedValue -0.158411 InfinityNormOfProjectedGradient
>>>> 6.6516e-05
>>>> Iter 44 CachedValue -0.158411 InfinityNormOfProjectedGradient
>>>> 0.000101636
>>>> Iter 45 CachedValue -0.158517 InfinityNormOfProjectedGradient
>>>> 0.000101636
>>>> Iter 45 CachedValue -0.158517 InfinityNormOfProjectedGradient
>>>> 0.000107886
>>>> Iter 46 CachedValue -0.158754 InfinityNormOfProjectedGradient
>>>> 0.000107886
>>>> Iter 46 CachedValue -0.158754 InfinityNormOfProjectedGradient
>>>> 0.000152569
>>>> Iter 47 CachedValue -0.158857 InfinityNormOfProjectedGradient
>>>> 0.000152569
>>>> Iter 47 CachedValue -0.158857 InfinityNormOfProjectedGradient
>>>> 9.54528e-05
>>>> Iter 48 CachedValue -0.158938 InfinityNormOfProjectedGradient
>>>> 9.54528e-05
>>>> Iter 48 CachedValue -0.158938 InfinityNormOfProjectedGradient
>>>> 0.000131167
>>>> Iter 49 CachedValue -0.159018 InfinityNormOfProjectedGradient
>>>> 0.000131167
>>>> Iter 49 CachedValue -0.159018 InfinityNormOfProjectedGradient
>>>> 0.00011672
>>>> Iter 50 CachedValue -0.159042 InfinityNormOfProjectedGradient
>>>> 0.00011672
>>>> Iter 50 CachedValue -0.159042 InfinityNormOfProjectedGradient
>>>> 8.40269e-05
>>>> Iter 51 CachedValue -0.159081 InfinityNormOfProjectedGradient
>>>> 8.40269e-05
>>>> Iter 51 CachedValue -0.159081 InfinityNormOfProjectedGradient
>>>> 0.000105198
>>>> Iter 52 CachedValue -0.159252 InfinityNormOfProjectedGradient
>>>> 0.000105198
>>>> Iter 52 CachedValue -0.159252 InfinityNormOfProjectedGradient
>>>> 9.19912e-05
>>>> Iter 53 CachedValue -0.159222 InfinityNormOfProjectedGradient
>>>> 9.19912e-05
>>>> Iter 53 CachedValue -0.159337 InfinityNormOfProjectedGradient
>>>> 9.19912e-05
>>>> Iter 53 CachedValue -0.159337 InfinityNormOfProjectedGradient
>>>> 0.000107755
>>>> Iter 54 CachedValue -0.159442 InfinityNormOfProjectedGradient
>>>> 0.000107755
>>>> Iter 54 CachedValue -0.159442 InfinityNormOfProjectedGradient
>>>> 0.000197689
>>>> Iter 55 CachedValue -0.159526 InfinityNormOfProjectedGradient
>>>> 0.000197689
>>>> Iter 55 CachedValue -0.159526 InfinityNormOfProjectedGradient
>>>> 0.000102651
>>>> Iter 56 CachedValue -0.159619 InfinityNormOfProjectedGradient
>>>> 0.000102651
>>>> Iter 56 CachedValue -0.159619 InfinityNormOfProjectedGradient
>>>> 4.66383e-05
>>>> Iter 57 CachedValue -0.1597 InfinityNormOfProjectedGradient
>>>> 4.66383e-05
>>>> Iter 57 CachedValue -0.1597 InfinityNormOfProjectedGradient
>>>> 6.57382e-05
>>>> Iter 58 CachedValue -0.159817 InfinityNormOfProjectedGradient
>>>> 6.57382e-05
>>>> Iter 58 CachedValue -0.159817 InfinityNormOfProjectedGradient
>>>> 8.31402e-05
>>>> Iter 59 CachedValue -0.1599 InfinityNormOfProjectedGradient
>>>> 8.31402e-05
>>>> Iter 59 CachedValue -0.1599 InfinityNormOfProjectedGradient
>>>> 7.35979e-05
>>>> Iter 60 CachedValue -0.159991 InfinityNormOfProjectedGradient
>>>> 7.35979e-05
>>>> Iter 60 CachedValue -0.159991 InfinityNormOfProjectedGradient
>>>> 7.34808e-05
>>>> Iter 61 CachedValue -0.159807 InfinityNormOfProjectedGradient
>>>> 7.34808e-05
>>>> Iter 61 CachedValue -0.160097 InfinityNormOfProjectedGradient
>>>> 7.34808e-05
>>>> Iter 61 CachedValue -0.160097 InfinityNormOfProjectedGradient
>>>> 0.000107219
>>>> Iter 62 CachedValue -0.160211 InfinityNormOfProjectedGradient
>>>> 0.000107219
>>>> Iter 62 CachedValue -0.160211 InfinityNormOfProjectedGradient
>>>> 0.000189714
>>>> Iter 63 CachedValue -0.160198 InfinityNormOfProjectedGradient
>>>> 0.000189714
>>>> Iter 63 CachedValue -0.160193 InfinityNormOfProjectedGradient
>>>> 0.000189714
>>>> Iter 63 CachedValue -0.160221 InfinityNormOfProjectedGradient
>>>> 0.000189714
>>>> Iter 63 CachedValue -0.160221 InfinityNormOfProjectedGradient
>>>> 0.000187129
>>>> Iter 64 CachedValue -0.160294 InfinityNormOfProjectedGradient
>>>> 0.000187129
>>>> Iter 64 CachedValue -0.160294 InfinityNormOfProjectedGradient
>>>> 9.65022e-05
>>>> Iter 65 CachedValue -0.160348 InfinityNormOfProjectedGradient
>>>> 9.65022e-05
>>>> Iter 65 CachedValue -0.160348 InfinityNormOfProjectedGradient
>>>> 6.75378e-05
>>>> Iter 66 CachedValue -0.160151 InfinityNormOfProjectedGradient
>>>> 6.75378e-05
>>>> Iter 66 CachedValue -0.160291 InfinityNormOfProjectedGradient
>>>> 6.75378e-05
>>>> Iter 66 CachedValue -0.160349 InfinityNormOfProjectedGradient
>>>> 6.75378e-05
>>>> Iter 66 CachedValue -0.160289 InfinityNormOfProjectedGradient
>>>> 6.75378e-05
>>>> Iter 66 CachedValue -0.160349 InfinityNormOfProjectedGradient
>>>> 6.75378e-05
>>>> Iter 66 CachedValue -0.160287 InfinityNormOfProjectedGradient
>>>> 6.75378e-05
>>>> Iter 66 CachedValue -0.160349 InfinityNormOfProjectedGradient
>>>> 6.75378e-05
>>>> Iter 66 CachedValue -0.160352 InfinityNormOfProjectedGradient
>>>> 6.75378e-05
>>>> Iter 66 CachedValue -0.160354 InfinityNormOfProjectedGradient
>>>> 6.75378e-05
>>>> Iter 66 CachedValue -0.160354 InfinityNormOfProjectedGradient
>>>> 6.75378e-05
>>>> Iter 66 CachedValue -0.160354 InfinityNormOfProjectedGradient
>>>> 6.54521e-05
>>>> Iter 67 CachedValue -0.159162 InfinityNormOfProjectedGradient
>>>> 6.54521e-05
>>>> Iter 67 CachedValue -0.160283 InfinityNormOfProjectedGradient
>>>> 6.54521e-05
>>>> Iter 67 CachedValue -0.160287 InfinityNormOfProjectedGradient
>>>> 6.54521e-05
>>>> Iter 67 CachedValue -0.160354 InfinityNormOfProjectedGradient
>>>> 6.54521e-05
>>>> Iter 67 CachedValue -0.160288 InfinityNormOfProjectedGradient
>>>> 6.54521e-05
>>>> Iter 67 CachedValue -0.160354 InfinityNormOfProjectedGradient
>>>> 6.54521e-05
>>>> Iter 67 CachedValue -0.160354 InfinityNormOfProjectedGradient
>>>> 6.54521e-05
>>>> Iter 67 CachedValue -0.160288 InfinityNormOfProjectedGradient
>>>> 6.54521e-05
>>>> Iter 67 CachedValue -0.160354 InfinityNormOfProjectedGradient
>>>> 6.54521e-05
>>>> Iter 67 CachedValue -0.160354 InfinityNormOfProjectedGradient
>>>> 6.54521e-05
>>>> Iter 67 CachedValue -0.160354 InfinityNormOfProjectedGradient
>>>> 6.54521e-05
>>>> Iter 67 CachedValue -0.160354 InfinityNormOfProjectedGradient
>>>> 6.54736e-05
>>>> Iter 68 CachedValue -0.158687 InfinityNormOfProjectedGradient
>>>> 6.54736e-05
>>>> Iter 68 CachedValue -0.160273 InfinityNormOfProjectedGradient
>>>> 6.54736e-05
>>>> Iter 68 CachedValue -0.160287 InfinityNormOfProjectedGradient
>>>> 6.54736e-05
>>>> Iter 68 CachedValue -0.160354 InfinityNormOfProjectedGradient
>>>> 6.54736e-05
>>>> Iter 68 CachedValue -0.160354 InfinityNormOfProjectedGradient
>>>> 6.54736e-05
>>>> Iter 68 CachedValue -0.160354 InfinityNormOfProjectedGradient
>>>> 6.54736e-05
>>>> Iter 68 CachedValue -0.160354 InfinityNormOfProjectedGradient
>>>> 6.54736e-05
>>>> Iter 68 CachedValue -0.160354 InfinityNormOfProjectedGradient
>>>> 6.54736e-05
>>>> Iter 68 CachedValue -0.160354 InfinityNormOfProjectedGradient
>>>> 6.54736e-05
>>>> Iter 68 CachedValue -0.160354 InfinityNormOfProjectedGradient
>>>> 6.54687e-05
>>>> Iter 69 CachedValue -0.160267 InfinityNormOfProjectedGradient
>>>> 6.54687e-05
>>>> Iter 69 CachedValue -0.160303 InfinityNormOfProjectedGradient
>>>> 6.54687e-05
>>>> Iter 69 CachedValue -0.160289 InfinityNormOfProjectedGradient
>>>> 6.54687e-05
>>>> Iter 69 CachedValue -0.160354 InfinityNormOfProjectedGradient
>>>> 6.54687e-05
>>>> Iter 69 CachedValue -0.160354 InfinityNormOfProjectedGradient
>>>> 6.54687e-05
>>>> Iter 69 CachedValue -0.160354 InfinityNormOfProjectedGradient
>>>> 6.54687e-05
>>>> Iter 69 CachedValue -0.160354 InfinityNormOfProjectedGradient
>>>> 6.54687e-05
>>>> Iter 69 CachedValue -0.160354 InfinityNormOfProjectedGradient
>>>> 6.54687e-05
>>>> Iter 69 CachedValue -0.160354 InfinityNormOfProjectedGradient
>>>> 6.54687e-05
>>>> Iter 69 CachedValue -0.160354 InfinityNormOfProjectedGradient
>>>> 6.54687e-05
>>>> Iter 69 CachedValue -0.160354 InfinityNormOfProjectedGradient
>>>> 6.54687e-05
>>>> Iter 69 CachedValue -0.160354 InfinityNormOfProjectedGradient
>>>> 6.54687e-05
>>>> Iter 69 CachedValue -0.160354 InfinityNormOfProjectedGradient
>>>> 6.54687e-05
>>>> Iter 69 CachedValue -0.160354 InfinityNormOfProjectedGradient
>>>> 6.54687e-05
>>>> Iter 69 CachedValue -0.160354 InfinityNormOfProjectedGradient
>>>> 6.54687e-05
>>>> Iter 69 CachedValue -0.160354 InfinityNormOfProjectedGradient
>>>> 6.54687e-05
>>>> Iter 69 CachedValue -0.160354 InfinityNormOfProjectedGradient
>>>> 6.54687e-05
>>>> Probe Tag Starts Stops Time (s)
>>>> Registration 1 1 38.5086
>>>>
>>>>
>>>>
>>>>
>>>> On Tue, 30 Jun 2009, Luis Ibanez wrote:
>>>>
>>>> Hi Serena,
>>>>
>>>>>
>>>>> Why did you replace the
>>>>>
>>>>> optimizer->GetCachedValue()
>>>>>
>>>>> with
>>>>>
>>>>> optimizer->GetValue()
>>>>>
>>>>> ??
>>>>>
>>>>> With the original code
>>>>>
>>>>> std::cout << optimizer->GetCurrentIteration() << " ";
>>>>> std::cout << optimizer->GetCachedValue() << " ";
>>>>> std::cout << optimizer->GetInfinityNormOfProjectedGradient() <<
>>>>> std::endl;
>>>>>
>>>>>
>>>>> I get output similar to
>>>>>
>>>>>
>>>>> Starting Registration
>>>>> 0 -0.126569 0
>>>>> 0 -0.128309 0
>>>>> 0 -0.132048 0
>>>>> 0 -0.145772 0
>>>>> 0 -0.206432 0
>>>>> 0 -0.304187 0
>>>>> 0 -0.304187 0.000164939
>>>>> 1 -0.359927 0.000164939
>>>>> 1 -0.359927 0.00022934
>>>>> 2 -0.289385 0.00022934
>>>>>
>>>>> when registering the images:
>>>>>
>>>>> brainweb165a10f17.mha
>>>>> brainweb165a10f17Rot20Tx20.mha
>>>>>
>>>>>
>>>>> Could you please restore the original code
>>>>> and let us know if this time you get non-zero
>>>>> outputs ?
>>>>>
>>>>>
>>>>> Thanks
>>>>>
>>>>>
>>>>> Luis
>>>>>
>>>>>
>>>>> --------------------------------------------------------------
>>>>> On Tue, Jun 30, 2009 at 4:00 PM, Serena Fabbri <fabbri at u.washington.edu
>>>>>
>>>>>> wrote:
>>>>>>
>>>>>
>>>>> Hi All,
>>>>>
>>>>>>
>>>>>> I am using DeformableRegistration8 with Mattes Mutual Information and
>>>>>> LBFGSBoptimizer.
>>>>>> I'd like to know how the MI and the parameters change in each
>>>>>> iteration.
>>>>>> In
>>>>>> the example, class CommandIterationUpdate is implemented and I only
>>>>>> add
>>>>>> :
>>>>>>
>>>>>> std::cout <<"Iter "<<optimizer->GetCurrentIteration() << " ";
>>>>>> std::cout <<" Metric "<<optimizer->GetValue() << ":";
>>>>>> std::cout <<" Parameters "<<optimizer->GetCurrentPosition() <<
>>>>>> std::endl;
>>>>>>
>>>>>> I use a Bspline-grid with 3 bound nodes and 3 node in the image and I
>>>>>> run
>>>>>> fixed=MRI (176, 256, 160) (1,1,1)mm moving=CT (176, 256, 160)
>>>>>> (1,1,1)mm
>>>>>>
>>>>>> The code runs, I get a pretty good registered image but Metric value
>>>>>> and
>>>>>> parameters values are always 0.
>>>>>> could anybody point out me where the error is?
>>>>>> are the above instructions wrong?
>>>>>>
>>>>>>
>>>>>> Thanks.
>>>>>>
>>>>>> Serena.
>>>>>>
>>>>>> _____________________________________
>>>>>> Powered by www.kitware.com
>>>>>>
>>>>>> Visit other Kitware open-source projects at
>>>>>> http://www.kitware.com/opensource/opensource.html
>>>>>>
>>>>>> Please keep messages on-topic and check the ITK FAQ at:
>>>>>> http://www.itk.org/Wiki/ITK_FAQ
>>>>>>
>>>>>> Follow this link to subscribe/unsubscribe:
>>>>>> http://www.itk.org/mailman/listinfo/insight-users
>>>>>>
>>>>>>
>>>>>>
>>>>>
>>>>
>>>>
>>>>
>>>
>>
>>
>>
>
More information about the Insight-users
mailing list