Evaluator cannot return the expected metrics.
Created by: lcy-seso
In V2 API, by default, the following codes print a certain metric calculated by an evaluator.
def event_handler(event):
if isinstance(event, paddle.event.EndIteration):
if event.batch_id % 100 == 0:
print "\nPass %d, Batch %d, Cost %f, %s" % (
event.pass_id, event.batch_id, event.cost, event.metrics)
In the C++ implementation, an evaluator stores the evaluation results in Argument
, and there are also some evaluators that store nothing but just print to stderr.
The above code can only print the evaluated stored in Argument.value. If any of the following two situations happens, the evaluator cannot return a right result.
- An evaluator stores multiple evaluated metrics in a special format.
- An evaluator does not store the evaluated metrics but just print, for example, the chuck evaluator.
For the fist case, there should be some documentations to explain how each evaluator stores its results.
For the second case, the original C++ codes need to be modified.
Does anyone test that in V2 API every evaluator returns the right results?