-
Notifications
You must be signed in to change notification settings - Fork 3.4k
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
Progress bar callback #1450
Progress bar callback #1450
Conversation
Yes, this is the preferred way. The plan is to migrate the checkpoint and early stopping callbacks to do this as well. |
Hello @awaelchli! Thanks for updating this PR. There are currently no PEP 8 issues detected in this Pull Request. Cheers! 🍻 Comment last updated at 2020-04-23 22:38:40 UTC |
Would that make sense to modify the default progress bar by adding a global progress bar (while keeping the existing ones too)? What I mean by global is a progress bar over epochs.
|
@hadim I wouldn't be against it, just note that the training tqdm contains the epoch number in the description already. Anyway, given the current implementation, this would be super easy to add! |
The thing I like about the "global" progress bar is the ETA. |
@hadim I'd like that :) |
@Borda should a new trainer arg be added at the end or before the "deprecated" block of args? |
before deprecated :] |
thanks! I was not sure because there was one added after. |
|
Codecov Report
@@ Coverage Diff @@
## master #1450 +/- ##
=======================================
Coverage 88% 89%
=======================================
Files 68 69 +1
Lines 3956 4128 +172
=======================================
+ Hits 3501 3665 +164
- Misses 455 463 +8 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM, although I'm not sure we really need the ProgressBarBase class. Can't we just integrate all of that to the tqdm progress bar and maybe rename the tqdm parts to be more neutral? So that one just has to overwrite these methods. This would provide a more rigid structure of how such a callback should be defined.
@awaelchli Sorry, I missed your message. |
@alexeykarnachev No, I was able to fix it. Thanks for checking! What do the other core devs think? |
@awaelchli I think this is a valid argument. Tbh, I didn't think that much about these details, just thought that it is somewhat heavy to introduce a base class, when there is only one child class. |
This pull request is now in conflict... :( |
1 similar comment
This pull request is now in conflict... :( |
This pull request is now in conflict... :( |
This pull request is now in conflict... :( |
This pull request is now in conflict... :( |
Co-Authored-By: Jirka Borovec <Borda@users.noreply.github.com>
This pull request is now in conflict... :( |
Co-Authored-By: Jirka Borovec <Borda@users.noreply.github.com>
This pull request is now in conflict... :( |
seems as rename enabled/disabled is not completely propagated in loggers |
I'm working on it :) |
Thanks for merging! @hadim Would you like to open an issue about your idea for a global bar with ETA? EDIT: I saw there is already one :) |
Thanks for submitting! |
Before submitting
What does this PR do?
Moves the progress bar from training code into a callback. This enables customization of progress bar display as desired in #765, #1386, #1121, #1500, Lightning-Universe/lightning-bolts#2
A custom progress bar callback can be passed like so:
This is a draft. There are some open questions I have for the core team:
progress_bar_refresh_rate
andprocess_position
trainer args be deprecated and instead moved to the ProgressBar callback? Right now it is a hybrid.PR review
Anyone in the community is free to review the PR once the tests have passed.
If we didn't discuss your PR in Github issues there's a high chance it will not be merged.
Did you have fun?
Make sure you had fun coding 🙃