Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Implement the core of FW methods as iterators #67

Open
matbesancon opened this issue Jan 28, 2021 · 1 comment
Open

Implement the core of FW methods as iterators #67

matbesancon opened this issue Jan 28, 2021 · 1 comment
Labels
enhancement New feature or request Low priority Low priority midterm Mid term

Comments

@matbesancon
Copy link
Member

Most methods consist in

  1. Setup
  2. Iteration until criterion met
  3. Cleanup and return

Part 2. could look roughly the same in many algorithms, with the difference being what happens inside each iteration.
For this, an iteration interface could be nice. This also lets the user debug, inspect and so on without us having to anticipate all they might want to inspect at each iteration. The top-level functions can be kept as-is, but users with high-perf will just do the setup and iterations part, without allocating or logging.

Resources:
This discussion mentions the approach in Manopt.jl:
https://discourse.julialang.org/t/ann-optimkit-jl-a-blissfully-ignorant-julia-package-for-gradient-optimization/41063

A blog post describes the iterator approach to solve a linear system:
https://lostella.github.io/2018/07/25/iterative-methods-done-right.html

This is not high-priority, but can make FW more flexible and let users decide what they want to log and how

@matbesancon matbesancon added enhancement New feature or request Low priority Low priority labels Jan 28, 2021
@matbesancon
Copy link
Member Author

I'll try to find examples in Manopt using it when this becomes relevant

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request Low priority Low priority midterm Mid term
Projects
None yet
Development

No branches or pull requests

2 participants