[POC] Implement callback for dask.#5612
Closed
trivialfis wants to merge 3 commits intodmlc:masterfrom
Closed
Conversation
trivialfis
commented
Apr 27, 2020
487b805 to
7428ef5
Compare
Member
Author
|
@hcho3 Can we disable the c++ header ordering lint? |
Collaborator
|
@trivialfis Why should we disable it? It is part of Google C++ coding style. |
Merged
Codecov ReportAttention: Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## master #5612 +/- ##
==========================================
- Coverage 82.62% 82.52% -0.11%
==========================================
Files 12 12
Lines 2728 3015 +287
==========================================
+ Hits 2254 2488 +234
- Misses 474 527 +53 ☔ View full report in Codecov by Sentry. 🚀 New features to boost your workflow:
|
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Proof of concept implementation for dask training callback. As it is not consistent with single node implementation, this is an early PR for review and discussion.
The rational behind a new style of callback function is that, the original one is modelled after R implementation. The R impl uses language environment for storing states, while Python doesn't have such facility so the original callback creates an artificial one to be consistent with R. I believe the new style is cleaner, native to Python, and easier customize. With the new interface, #5238 and #5495 can be easily implemented.
To provide a short introduction to new callback function, here is its interface:
All the other callbacks is sub-class of this
Callback. This interface is suitable for both single node and distributed training. Function return value is whether training should be stopped,Falseif not. By using a return value, we can deprecateEarlyStopException, which is created for one particular callback.To-dos:
Callbackcan be a wrapper of original callback, I need to port the implementation to non-dask training.Future plan
If the new design is approved, I would like to deprecate the following parameters:
fitfunctioneval_set,eval_metric,early_stopping_rounds,verbose,sample_weight_eval_set,trainfunctionevals,feval,maximize,early_stopping_rounds,evals_result,verbose_eval=TrueRelated:
#4955
#3822