mlpack / ensmallen

A header-only C++ library for numerical optimization --
http://ensmallen.org
Other
742 stars 120 forks source link

ProgressBar() does not work with L_BFGS #361

Open tonideleo opened 1 year ago

tonideleo commented 1 year ago

Issue description

Following the example.cpp, I was playing around with some callbacks functions. For example, I realized if I use the Adam optimizer, the callback function ProgressBar() works without issues; however, it does not work with L_BFGS. In the documentation I did not find any exception use for this callback nor limitation in the section regarding the L_BFGS.

Your environment

Steps to reproduce

In line 64 of the example, substitute the following: opt.Optimize(lrf, theta, ens::ProgressBar());

Expected behavior

I was expecting to see the progress bar, which by the way it worked if I used a different optimizer.

Actual behavior

image

conradsnicta commented 1 year ago

@zoq may have more insight here. It's possible that ens::ProgressBar() doesn't support L_BFGS

zoq commented 1 year ago

That is correct, ens::ProgressBar() doesn't support L_BFGS, but I don't see a reason why it couldn't. I'm opening a PR to add support.

conradsnicta commented 1 year ago

@tonideleo it may take a while before progress bar supports L_BFGS. The ensmallen library is a volunteer driven project, so if you'd like to see the support earlier, you're welcome to contribute code 👍