print_evaluation callback output on last iteration (#2036)
verbose_eval docs claim it will log the last iteration (http://xgboost.readthedocs.io/en/latest/python/python_api.html#xgboost.train). this is also consistent w/the behavior from 0.4. not a huge deal but I found it handy to see the last iter's result b/c my period is usually large. this doesn't address logging the last stage found by early_stopping (as noted in docs) as I'm not sure how to do that.
This commit is contained in:
parent
b4d97d3cb8
commit
7927031ffe
@ -32,6 +32,9 @@ def _fmt_metric(value, show_stdv=True):
|
|||||||
def print_evaluation(period=1, show_stdv=True):
|
def print_evaluation(period=1, show_stdv=True):
|
||||||
"""Create a callback that print evaluation result.
|
"""Create a callback that print evaluation result.
|
||||||
|
|
||||||
|
We print the evaluation results every ``period`` iterations
|
||||||
|
and on the first and the last iterations.
|
||||||
|
|
||||||
Parameters
|
Parameters
|
||||||
----------
|
----------
|
||||||
period : int
|
period : int
|
||||||
@ -50,7 +53,7 @@ def print_evaluation(period=1, show_stdv=True):
|
|||||||
if env.rank != 0 or len(env.evaluation_result_list) == 0 or period is False:
|
if env.rank != 0 or len(env.evaluation_result_list) == 0 or period is False:
|
||||||
return
|
return
|
||||||
i = env.iteration
|
i = env.iteration
|
||||||
if (i % period == 0 or i + 1 == env.begin_iteration):
|
if (i % period == 0 or i + 1 == env.begin_iteration or i + 1 == env.end_iteration):
|
||||||
msg = '\t'.join([_fmt_metric(x, show_stdv) for x in env.evaluation_result_list])
|
msg = '\t'.join([_fmt_metric(x, show_stdv) for x in env.evaluation_result_list])
|
||||||
rabit.tracker_print('[%d]\t%s\n' % (i, msg))
|
rabit.tracker_print('[%d]\t%s\n' % (i, msg))
|
||||||
return callback
|
return callback
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user