-
Couldn't load subscription status.
- Fork 132
Description
Issue description
When using callbacks like ens::ProgessBar or similar, and the optimization terminates partway through an epoch due to a convergence check, the output can be confusing:
Epoch 1/29[=========================================================================================>..........] 89% - ETA: 0s - loss: 1115.75
but then output stops.
See the discussion at mlpack/mlpack#2073 for many more details and how to reproduce.
Expected behavior
We should see if we can modify the ens::ProgressBar callback (and perhaps others) to give better output in these situations. Perhaps something like this would be an improvement:
Epoch 1/29[=========================================================================================>..........] 89% - ETA: 0s - loss: 1115.75
Optimization converged! (value 1.33e-6, tolerance 1e-5)
Actual behavior
Instead the output just terminates:
Epoch 1/29[=========================================================================================>..........] 89% - ETA: 0s - loss: 1115.75
This would be a good issue if you are not familiar with how ensmallen's callbacks work and would like to be. I don't have a direct route to a solution here, so my suggestion would be to investigate the current callback code, reproduce the issue, then think about the cleanest way to print convergence information in the ens::ProgressBar callback. Once that's done, see if similar changes might be useful for some of the other callbacks that print information (see http://ensmallen.org/docs.html#callback-documentation for more information on the callbacks that are available).