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

Hyperparameter optimization #15

Merged
merged 11 commits into from
Mar 22, 2024
Merged

Hyperparameter optimization #15

merged 11 commits into from
Mar 22, 2024

Conversation

mateuszbaran
Copy link
Member

I've moved the important part of JuliaManifolds/Manopt.jl#339 here.

Copy link

codecov bot commented Mar 1, 2024

Codecov Report

All modified and coverable lines are covered by tests ✅

Project coverage is 100.00%. Comparing base (819b492) to head (1270ea9).

Additional details and impacted files
@@            Coverage Diff            @@
##              main       #15   +/-   ##
=========================================
  Coverage   100.00%   100.00%           
=========================================
  Files           10        10           
  Lines         1106      1106           
=========================================
  Hits          1106      1106           

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

@mateuszbaran
Copy link
Member Author

@kellertuer I'm not sure if we should actually attempt running the hyperparameter optimization on CI? It's fairly expensive but I will try to restrict it.

@kellertuer
Copy link
Member

We have a few examples and/or tutorials even that are run locally and just their Markdown checked in. For example the geodesic regression (tutorial in Manopt) which requires rendering with Asymptote, which can not be done on CI.

So for any Benchmark I would do the same since it would probably run for too Lon on CI.

@mateuszbaran
Copy link
Member Author

Good idea, I will try that.

@mateuszbaran
Copy link
Member Author

This isn't going to work without JuliaManifolds/Manopt.jl#361 so we should finish that first.

@mateuszbaran
Copy link
Member Author

@kellertuer everything works now here 🙂

@mateuszbaran mateuszbaran added the Ready-for-Review A label for pull requests that are feature-ready label Mar 8, 2024
@kellertuer
Copy link
Member

Nice, I can take a closer look the next few days.

At first glance:

  • running benchmark and such locally and checking that in is of course fine
  • maybe a few of the code blocks could be made a bit shorter with a bit more text in between?
  • The literature would be nice with something “clickable” – a DOI, an arXiv preprint, something like that.

@mateuszbaran
Copy link
Member Author

I considered dividing it further but there is no obvious (to me) point at which it would make sense. Feel free to suggest which block to cut though.

Copy link
Member

@kellertuer kellertuer left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Oh I added the remarks to the md file, sorry.

Sone code blocks are a bit long but I do not see a good idea how to shorten them.

One thing I would prefer to have is a short interpretation of the search run, what do the results mean here, which method to use? Something like manifold = 1, retr=3 is a bit magic.


norm_inf(M::AbstractManifold, p, X) = norm(X, Inf)

struct TTsuggest_int
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I am not so sure what this struct and the following are, but I suppose they are merely collecting results or values? Maybe that could be mentioned?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

They are purely technical detail for collecting reported data from a single run.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Maybe add exactly this sentence (no phrased a bit nicer maybe) somewhere then :)

TTreport(Float64[]),
TTshould_prune(),
)
od(tt)
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This line I do not understand – od is just a struct from the current definitions with quite some fields, how can it be called with one parameter?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It has a method written later. Anyway, compute_pruning_losses is another technical detail, I will move it to another cell.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Add at least a comment what that does here, or move it to later (yeah saw it later as well then).

@mateuszbaran
Copy link
Member Author

One thing I would prefer to have is a short interpretation of the search run, what do the results mean here, which method to use? Something like manifold = 1, retr=3 is a bit magic.

Sure, I will add that.

@mateuszbaran
Copy link
Member Author

I think I've addressed all your comments but I'm not sure why the documentation preview isn't updated. Maybe we are caching too much?

@kellertuer
Copy link
Member

I don't think we cache too much, but maybe the deployment failed? Hm, does not look like. Then I am unsure why it did not update

@mateuszbaran
Copy link
Member Author

The issue with documenter job not recognizing ManifoldsBase.jl in another PR was exactly caching -- I've removed cached data and the next run succeeded. I've cleaned the cache here and re-run documenter, when it finishes we will see.

@kellertuer
Copy link
Member

I See. Caching the packages speeds things up here, but seems to sometimes cause this, then.

@mateuszbaran
Copy link
Member Author

I think this is ready to be merged now?

Copy link
Member

@kellertuer kellertuer left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes, sure.

@mateuszbaran mateuszbaran merged commit 4143941 into main Mar 22, 2024
11 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Ready-for-Review A label for pull requests that are feature-ready
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants