-
Notifications
You must be signed in to change notification settings - Fork 38
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
Introduce public summary. Remove "no step" / "step" logic from plots. #331
Introduce public summary. Remove "no step" / "step" logic from plots. #331
Conversation
5a1ce90
to
ec75b91
Compare
thanks @daavoo, interface is getting better! QQ: so, how will it look like for the (it feels we are optimizing for DL scenarios a bit too much?) |
If you leave the code as it is right now, everything will be the same with the exception that a
If you don't want to generate a single-value
Output files have already been renamed to |
Should |
Can you easily separate the
What about params? Those are non-step values that get logged via a logger method, although I think we discussed setting them available by dict modification. It seems this PR is only halfway towards what wandb and mlflow do, since they both have
Assuming a step-based workflow is what both mlflow and wandb do, so I can understand the push to do the same. However, I don't like that dvclive would then be generating single-point tsv plots from all the metrics. Maybe we can leave in some logic for step 0/None to ignore writing to tsv until |
Hmm, no strong opinion, but should this method also be either made private or documented? |
I think
Not sure I see the problem.
The idea is that, for no-step workflow, we document the following (instead of calling live = Live()
live.summary["foo"] = 1
live.make_summary() This won't generate
Method should be public to document the snippet above |
09a22bb
to
8850ddf
Compare
Codecov Report
Additional details and impacted files@@ Coverage Diff @@
## 1.0 #331 +/- ##
======================================
Coverage ? 95.35%
======================================
Files ? 36
Lines ? 1702
Branches ? 153
======================================
Hits ? 1623
Misses ? 57
Partials ? 22 Help us with your feedback. Take ten seconds to tell us how you rate us. Have a feature suggestion? Share it here. ☔ View full report at Codecov. |
8850ddf
to
d91ec1d
Compare
8a3f41f
to
e115105
Compare
I don't mind supporting it, but I wouldn't expect that the summary dict is a primary workflow, and I wouldn't introduce it in our example-get-started project. wandb doesn't introduce this in their get started materials, and I think they generally assume users are fine with logging to
Why is there a step logged to the tsv file? This seems more important than
What I meant here is there still seems to be some "no step" logic that we could drop if we default to |
e115105
to
d89c29a
Compare
I don't see it that way. I think the difference is that our example-get-started focuses on "no step" scenario whereas any other experiment tracker focuses on "step" scenarios first (or even only). The introduction to |
Discussed with @daavoo and agreed to:
|
It was initially introduced for supporting different logging format between step and not step updates. For `live.log_image`, "step" mode now overwrites the path instead of creating subfolder by step. For `live.log`, the "no step" was meant to not generate the `.tsv` file but only the `.json`. Added a public property `summary` so "no step" scenarios can work as follows: ``` live = Live() live.summary["foo"] = 1 live.make_summary() ``` Closes #326 Apply suggestions from code review Co-authored-by: Paweł Redzyński <[email protected]>
d89c29a
to
2df8518
Compare
Merging it. Again, we can get back and change stuff found during docs review |
Sorry, forgot to approve this one. |
…s. (#331) It was initially introduced for supporting different logging format between step and not step updates. For `live.log_image`, "step" mode now overwrites the path instead of creating subfolder by step. For `live.log`, the "no step" was meant to not generate the `.tsv` file but only the `.json`. Added a public property `summary` so "no step" scenarios can work as follows: ``` live = Live() live.summary["foo"] = 1 live.make_summary() ``` Closes #326 Apply suggestions from code review Co-authored-by: Paweł Redzyński <[email protected]> Co-authored-by: Paweł Redzyński <[email protected]>
…s. (#331) It was initially introduced for supporting different logging format between step and not step updates. For `live.log_image`, "step" mode now overwrites the path instead of creating subfolder by step. For `live.log`, the "no step" was meant to not generate the `.tsv` file but only the `.json`. Added a public property `summary` so "no step" scenarios can work as follows: ``` live = Live() live.summary["foo"] = 1 live.make_summary() ``` Closes #326 Apply suggestions from code review Co-authored-by: Paweł Redzyński <[email protected]> Co-authored-by: Paweł Redzyński <[email protected]>
…s. (#331) It was initially introduced for supporting different logging format between step and not step updates. For `live.log_image`, "step" mode now overwrites the path instead of creating subfolder by step. For `live.log`, the "no step" was meant to not generate the `.tsv` file but only the `.json`. Added a public property `summary` so "no step" scenarios can work as follows: ``` live = Live() live.summary["foo"] = 1 live.make_summary() ``` Closes #326 Apply suggestions from code review Co-authored-by: Paweł Redzyński <[email protected]> Co-authored-by: Paweł Redzyński <[email protected]>
"no step" / "step" logic was initially introduced to support different logging formats between step and not step updates.
For
live.log_image
, "step" mode now overwrites the path instead of creating subfolder by step. Closes #326For
live.log
, the "no step" was meant not to generate the.tsv
file but only the.json
.Added a public property
summary
so "no step" scenarios can work as follows:This is a similar design used by wandb (https://docs.wandb.ai/guides/track/log#summary-metrics), where the latest values are in summary by default but single scalars are supposed to be added via manual
summary
modification instead oflog