This question must be trivial.
I'm starting to have a few complex cost functions and I would need to understand how each contribute and in witch case
to be able to fine tune everything.
For this I need some info about cost & jacobian at each iteration,
then I can exploit it in visualization software.
How can we get cost& jacobian at each iteration for every residual block?
I know I could trigger the writing of such data manually (using the "IterationCallback").
I noticed the Problem::Evaluate(const EvaluateOptions& options,
double* cost,
vector<double>* residuals,
vector<double>* gradient,
CRSMatrix* jacobian)
function, but I'm having a hard time understanding it.
According to the comments, the residuals should be in the order of the construction.
What is this "gradient" exactly, and what is its dimension?
I have the same kind of questions for the covariance
I noticed the function Covariance::Compute(const vector<pair<const double*, const double*>>& covariance_blocks, Problem* problem)
I guess if I'm only interested in diagonal elements I have to create a vector of (1,1),(2,2)...
Can this function be called in the iteration call back?
Many thanks for the help,
Cheers,
Rémi-C
--
You received this message because you are subscribed to the Google Groups "Ceres Solver" group.
To unsubscribe from this group and stop receiving emails from it, send an email to ceres-solver...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/ceres-solver/fa88969d-5c42-4d88-a5dd-ab51fd954cbd%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.
Remi,
MMMany thanks for the help,
Cheers,
Rémi-C
If I get you right there is no easy way to get the residuals at each iteration step.
I solve a geometric problem so jacobian and residuals can be added to my map as a 2D vector +color (for instance).
I already use the iteration callback to write the state of the parameters at each iteration, this allow me to "follow" what' going on using a sliders to go trough iterations
(that is, get the parameter evolution following time (iteration) ).
Again if I understand you right, I have to manually evaluate every function (or store the current residuals and jac in each functor ) if I want to access these informations.
I wanted to be sure because calling manually seems to be a rewrite of what Ceres already does at each iteration.
To view this discussion on the web visit https://groups.google.com/d/msgid/ceres-solver/e4c4403c-8737-4447-89ae-a30d16b6d9c2%40googlegroups.com.
Oups just another small precision ;
Is there any guarantee that the last time all "evaluate()" for cost function have been called in an iteration will be for the retained temporary solution?
That is, can I just store the value of residuals and jac every time the evaluate function is called, then export it when the iteration callback executes?
This would be so much simpler !
Cheers,
Rémi-C
--
You received this message because you are subscribed to the Google Groups "Ceres Solver" group.
To unsubscribe from this group and stop receiving emails from it, send an email to ceres-solver...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/ceres-solver/79e96d9c-c768-4f69-9c7d-9477dfa90ab4%40googlegroups.com.