[doc] Clarify that states in callbacks are mutated. (#7685)
* Fix copy for cv. This prevents inserting default callbacks into the input list. * Clarify the behavior of callbacks in training/cv. * Fix typos in doc.
This commit is contained in:
parent
584bae1fc6
commit
c859764d29
@ -256,7 +256,7 @@ class LearningRateScheduler(TrainingCallback):
|
|||||||
Parameters
|
Parameters
|
||||||
----------
|
----------
|
||||||
|
|
||||||
learning_rates : callable/collections.Sequence
|
learning_rates :
|
||||||
If it's a callable object, then it should accept an integer parameter
|
If it's a callable object, then it should accept an integer parameter
|
||||||
`epoch` and returns the corresponding learning rate. Otherwise it
|
`epoch` and returns the corresponding learning rate. Otherwise it
|
||||||
should be a sequence like list or tuple with the same size of boosting
|
should be a sequence like list or tuple with the same size of boosting
|
||||||
|
|||||||
@ -286,13 +286,21 @@ __model_doc = f'''
|
|||||||
|
|
||||||
callbacks : Optional[List[TrainingCallback]]
|
callbacks : Optional[List[TrainingCallback]]
|
||||||
List of callback functions that are applied at end of each iteration.
|
List of callback functions that are applied at end of each iteration.
|
||||||
It is possible to use predefined callbacks by using :ref:`callback_api`.
|
It is possible to use predefined callbacks by using
|
||||||
Example:
|
:ref:`Callback API <callback_api>`.
|
||||||
|
|
||||||
|
.. note::
|
||||||
|
|
||||||
|
States in callback are not preserved during training, which means callback
|
||||||
|
objects can not be reused for multiple training sessions without
|
||||||
|
reinitialization or deepcopy.
|
||||||
|
|
||||||
.. code-block:: python
|
.. code-block:: python
|
||||||
|
|
||||||
callbacks = [xgb.callback.EarlyStopping(rounds=early_stopping_rounds,
|
for params in parameters_grid:
|
||||||
save_best=True)]
|
# be sure to (re)initialize the callbacks before each run
|
||||||
|
callbacks = [xgb.callback.LearningRateScheduler(custom_rates)]
|
||||||
|
xgboost.train(params, Xy, callbacks=callbacks)
|
||||||
|
|
||||||
kwargs : dict, optional
|
kwargs : dict, optional
|
||||||
Keyword arguments for XGBoost Booster object. Full documentation of parameters
|
Keyword arguments for XGBoost Booster object. Full documentation of parameters
|
||||||
@ -916,8 +924,8 @@ class XGBModel(XGBModelBase):
|
|||||||
otherwise a `ValueError` is thrown.
|
otherwise a `ValueError` is thrown.
|
||||||
|
|
||||||
callbacks :
|
callbacks :
|
||||||
.. deprecated: 1.6.0
|
.. deprecated:: 1.6.0
|
||||||
Use `callbacks` in :py:meth:`__init__` or :py:methd:`set_params` instead.
|
Use `callbacks` in :py:meth:`__init__` or :py:meth:`set_params` instead.
|
||||||
"""
|
"""
|
||||||
evals_result: TrainingCallback.EvalsLog = {}
|
evals_result: TrainingCallback.EvalsLog = {}
|
||||||
train_dmatrix, evals = _wrap_evaluation_matrices(
|
train_dmatrix, evals = _wrap_evaluation_matrices(
|
||||||
@ -1791,8 +1799,8 @@ class XGBRanker(XGBModel, XGBRankerMixIn):
|
|||||||
otherwise a `ValueError` is thrown.
|
otherwise a `ValueError` is thrown.
|
||||||
|
|
||||||
callbacks :
|
callbacks :
|
||||||
.. deprecated: 1.6.0
|
.. deprecated:: 1.6.0
|
||||||
Use `callbacks` in :py:meth:`__init__` or :py:methd:`set_params` instead.
|
Use `callbacks` in :py:meth:`__init__` or :py:meth:`set_params` instead.
|
||||||
"""
|
"""
|
||||||
# check if group information is provided
|
# check if group information is provided
|
||||||
if group is None and qid is None:
|
if group is None and qid is None:
|
||||||
|
|||||||
@ -123,11 +123,19 @@ def train(
|
|||||||
List of callback functions that are applied at end of each iteration.
|
List of callback functions that are applied at end of each iteration.
|
||||||
It is possible to use predefined callbacks by using
|
It is possible to use predefined callbacks by using
|
||||||
:ref:`Callback API <callback_api>`.
|
:ref:`Callback API <callback_api>`.
|
||||||
Example:
|
|
||||||
|
.. note::
|
||||||
|
|
||||||
|
States in callback are not preserved during training, which means callback
|
||||||
|
objects can not be reused for multiple training sessions without
|
||||||
|
reinitialization or deepcopy.
|
||||||
|
|
||||||
.. code-block:: python
|
.. code-block:: python
|
||||||
|
|
||||||
[xgb.callback.LearningRateScheduler(custom_rates)]
|
for params in parameters_grid:
|
||||||
|
# be sure to (re)initialize the callbacks before each run
|
||||||
|
callbacks = [xgb.callback.LearningRateScheduler(custom_rates)]
|
||||||
|
xgboost.train(params, Xy, callbacks=callbacks)
|
||||||
|
|
||||||
custom_metric:
|
custom_metric:
|
||||||
|
|
||||||
@ -416,15 +424,24 @@ def cv(params, dtrain, num_boost_round=10, nfold=3, stratified=False, folds=None
|
|||||||
Results are not affected, and always contains std.
|
Results are not affected, and always contains std.
|
||||||
seed : int
|
seed : int
|
||||||
Seed used to generate the folds (passed to numpy.random.seed).
|
Seed used to generate the folds (passed to numpy.random.seed).
|
||||||
callbacks : list of callback functions
|
callbacks :
|
||||||
List of callback functions that are applied at end of each iteration.
|
List of callback functions that are applied at end of each iteration.
|
||||||
It is possible to use predefined callbacks by using
|
It is possible to use predefined callbacks by using
|
||||||
:ref:`Callback API <callback_api>`.
|
:ref:`Callback API <callback_api>`.
|
||||||
Example:
|
|
||||||
|
.. note::
|
||||||
|
|
||||||
|
States in callback are not preserved during training, which means callback
|
||||||
|
objects can not be reused for multiple training sessions without
|
||||||
|
reinitialization or deepcopy.
|
||||||
|
|
||||||
.. code-block:: python
|
.. code-block:: python
|
||||||
|
|
||||||
[xgb.callback.LearningRateScheduler(custom_rates)]
|
for params in parameters_grid:
|
||||||
|
# be sure to (re)initialize the callbacks before each run
|
||||||
|
callbacks = [xgb.callback.LearningRateScheduler(custom_rates)]
|
||||||
|
xgboost.train(params, Xy, callbacks=callbacks)
|
||||||
|
|
||||||
shuffle : bool
|
shuffle : bool
|
||||||
Shuffle data before creating folds.
|
Shuffle data before creating folds.
|
||||||
custom_metric :
|
custom_metric :
|
||||||
@ -467,7 +484,7 @@ def cv(params, dtrain, num_boost_round=10, nfold=3, stratified=False, folds=None
|
|||||||
metric_fn = _configure_custom_metric(feval, custom_metric)
|
metric_fn = _configure_custom_metric(feval, custom_metric)
|
||||||
|
|
||||||
# setup callbacks
|
# setup callbacks
|
||||||
callbacks = [] if callbacks is None else callbacks
|
callbacks = [] if callbacks is None else copy.copy(list(callbacks))
|
||||||
_assert_new_callback(callbacks)
|
_assert_new_callback(callbacks)
|
||||||
|
|
||||||
if verbose_eval:
|
if verbose_eval:
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user