Closed djinnome closed 8 months ago
Hi Joseph, I assigned this to you because you may have opinions on whether it makes more sense to send the ELBO output to a logfile (for potential early stopping) or as an optional output of the calibrate
function
This is case where I think we should do both:
From an implementation standpoint, if we are doing both, I woudl go about it like this:
This setup does require some persistent storage so that files outlive jobs, but it is usually simple to setup: add a file handle to existing print statements, thread that file handle through the calls.
(The convergence plots don't show for me...broken images. I think I remember the images from notebooks, though.)
Addressed by progress_hook
in calibrate
.
In PR https://github.com/ciemss/pyciemss/pull/163 we discussed that it would be helpful for the user to view the convergence of the SVI algorithm.
Currently, calibrate prints out the loss every 25 iterations. https://github.com/ciemss/pyciemss/blob/5da3f8347d47a7871b7d0b18d766108bb6565fb1/src/pyciemss/PetriNetODE/interfaces.py#L107-L111
Joshua would like to capture this information either as an actual (optional) output, or as logging output so that it could be visualized as it is happening.
good convergence
bad convergence
WTF convergence