# lbfgs_lab

## Set Up

```bash
python -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt 
```

https://pypi.org/project/lbfgs_lab/

https://packaging.python.org/en/latest/tutorials/packaging-projects/

## Documentation

https://docs.readthedocs.com/platform/stable/tutorial/

## References

This project is partially inspired by the following L-BFGS-related repositories.
Thanks to the developers of these projects.

* [DirL-BFGS](https://github.com/ashkansl/DirL-BFGS): Direct L-BFGS method using a low-rank plus diagonal inverse Hessian approximation.
* [LBFGSpp](https://github.com/yixuan/LBFGSpp): Header-only C++ library for L-BFGS and L-BFGS-B algorithms.
* [liblbfgs](https://github.com/chokkan/liblbfgs): C library implementing the L-BFGS optimization method.
* [mL-BFGS](https://github.com/yuehniu/mL-BFGS?tab=readme-ov-file): Momentum-based L-BFGS for distributed large-scale neural network training.
* [paper-regularized-qn-benchmark](https://github.com/dmsteck/paper-regularized-qn-benchmark): Regularized L-BFGS approach for large-scale nonconvex minimization.
* [py-owlqn](https://github.com/samson-wang/py-owlqn.git): Python implementation of the OWL-QN optimization algorithm with a logistic regression example.
* [pylbfgs-dedupeio](https://github.com/dedupeio/pylbfgs): Python/Cython wrapper for the liblbfgs library.
* [pylbfgs-larsmans](https://github.com/larsmans/pylbfgs): Alternative Python/Cython wrapper for the liblbfgs library.
* [python_lbfgsb](https://github.com/avieira/python_lbfgsb): Pure Python implementation of L-BFGS-B, though using a deprecated scipy module.

## License

This project is licensed under the MIT License. (`liblbfgs` is under the MIT License as well).

See the [LICENSE](LICENSE) file for details.
