Base Evaluator¶
Evaluator¶
- 
class paddle::Evaluator¶
- Subclassed by paddle::AucEvaluator, paddle::ChunkEvaluator, paddle::ClassificationErrorEvaluator, paddle::ColumnSumEvaluator, paddle::CombinedEvaluator, paddle::CTCErrorEvaluator, paddle::DummyEvaluator, paddle::GradientPrinter, paddle::MaxFramePrinter, paddle::MaxIdPrinter, paddle::MultiCombinedEvaluator, paddle::PnpairEvaluator, paddle::PrecisionRecallEvaluator, paddle::RankAucEvaluator, paddle::SequenceTextPrinter, paddle::SumEvaluator, paddle::ValuePrinter - Public Functions - 
Evaluator()¶
 - 
virtual ~Evaluator()¶
 - 
virtual void init(const EvaluatorConfig &config)¶
 - 
virtual void start()¶
- start to evaluate some data 
 - 
virtual void eval(const NeuralNetwork &nn)¶
- Process a batch of data. 
 - 
virtual real evalImp(std::vector<Argument> &arguments) = 0¶
- Process a batch of data. return the score for the batch if it make sense to sum the score across batches. Otherwise evaluator should return 0 and override finish() and printStats() to do the right calculation. 
 - 
virtual void updateSamplesNum(const std::vector<Argument> &arguments)¶
- Update the number of processed samples 
 - 
virtual void distributeEval(ParameterClient2 *client)¶
- finish() should be called before distributeEval 
 - 
void mergeResultsOfAllClients(ParameterClient2 *client)¶
 - 
virtual void finish()¶
- finish the evaluation. 
 
- 
Utils¶
SumEvaluator¶
- 
class paddle::SumEvaluator¶
- Inherits from paddle::Evaluator - Public Functions - 
SumEvaluator()¶
 - 
virtual void updateSamplesNum(const std::vector<Argument> &arguments)¶
- Update the number of processed samples 
 - 
virtual real evalImp(std::vector<Argument> &arguments)¶
- Process a batch of data. return the score for the batch if it make sense to sum the score across batches. Otherwise evaluator should return 0 and override finish() and printStats() to do the right calculation. 
 - 
virtual void distributeEval(ParameterClient2 *client)¶
- finish() should be called before distributeEval 
 
- 
ColumnSumEvaluator¶
- 
class paddle::ColumnSumEvaluator¶
- Inherits from paddle::Evaluator - Public Functions - 
ColumnSumEvaluator(int32_t colIdx)¶
 - 
virtual void start()¶
- start to evaluate some data 
 - 
virtual void updateSamplesNum(const std::vector<Argument> &arguments)¶
- Update the number of processed samples 
 - 
virtual real evalImp(std::vector<Argument> &arguments)¶
- Process a batch of data. return the score for the batch if it make sense to sum the score across batches. Otherwise evaluator should return 0 and override finish() and printStats() to do the right calculation. 
 - 
virtual void distributeEval(ParameterClient2 *client)¶
- finish() should be called before distributeEval 
 
- 
Classification¶
ClassificationErrorEvaluator¶
- 
class paddle::ClassificationErrorEvaluator¶
- Inherits from paddle::Evaluator - Subclassed by paddle::ClassificationErrorPrinter, paddle::SequenceClassificationErrorEvaluator - Public Functions - 
virtual void updateSamplesNum(const std::vector<Argument> &arguments)¶
- Update the number of processed samples 
 - 
virtual real evalImp(std::vector<Argument> &arguments)¶
- Process a batch of data. return the score for the batch if it make sense to sum the score across batches. Otherwise evaluator should return 0 and override finish() and printStats() to do the right calculation. 
 - 
virtual void distributeEval(ParameterClient2 *client)¶
- finish() should be called before distributeEval 
 
- 
virtual void 
SequenceClassificationErrorEvaluator¶
- 
class paddle::SequenceClassificationErrorEvaluator¶
- Inherits from paddle::ClassificationErrorEvaluator - Public Functions - 
virtual void updateSamplesNum(const std::vector<Argument> &arguments)¶
- Update the number of processed samples 
 - 
virtual real evalImp(std::vector<Argument> &arguments)¶
- Process a batch of data. return the score for the batch if it make sense to sum the score across batches. Otherwise evaluator should return 0 and override finish() and printStats() to do the right calculation. 
 - 
virtual void distributeEval(ParameterClient2 *client)¶
- finish() should be called before distributeEval 
 
- 
virtual void 
AucEvaluator¶
- 
class paddle::AucEvaluator¶
- Inherits from paddle::Evaluator - Public Functions - 
AucEvaluator(int32_t colIdx)¶
- evaluate AUC using colIdx-th column as prediction. - colIdx = 0: the 0-th column.
- colIdx > 0: the colIdx-th column.
- colIdx < 0: the last colIdx-th column.
 
 - 
virtual void start()¶
- start to evaluate some data 
 - 
virtual real evalImp(std::vector<Argument> &arguments)¶
- Process a batch of data. return the score for the batch if it make sense to sum the score across batches. Otherwise evaluator should return 0 and override finish() and printStats() to do the right calculation. 
 - 
virtual void distributeEval(ParameterClient2 *client)¶
- finish() should be called before distributeEval 
 
- 
PrecisionRecallEvaluator¶
- 
class paddle::PrecisionRecallEvaluator¶
- Inherits from paddle::Evaluator - Public Functions - 
PrecisionRecallEvaluator()¶
 - 
virtual void start()¶
- start to evaluate some data 
 - 
virtual real evalImp(std::vector<Argument> &arguments)¶
- Process a batch of data. return the score for the batch if it make sense to sum the score across batches. Otherwise evaluator should return 0 and override finish() and printStats() to do the right calculation. 
 - 
virtual void distributeEval(ParameterClient2 *client)¶
- finish() should be called before distributeEval 
 
- 
ChunkEvaluator¶
- 
class paddle::ChunkEvaluator¶
- Chunk evaluator is used to evaluate segment labelling accuracy for a sequence. It calculates the chunk detection F1 score. - A chunk is correctly detected if its beginning, end and type are correct. Other chunk type is ignored. For each label in the label sequence, we have - tagType = label % numTagType chunkType = label / numTagType otherChunkType = numChunkTypes - The total number of different labels is numTagType*numChunkTypes+1 We support 4 labelling scheme The tag type for each of the scheme is shown as follows: - Scheme Begin Inside End Single plain 0 - - - IOB 0 1 - - IOE - 0 1 - IOBES 0 1 2 3 - ‘plain’ means the whole chunk must contain exactly the same chunk label. - Inherits from paddle::Evaluator - Public Functions - 
virtual void init(const EvaluatorConfig &config)¶
 - 
virtual void start()¶
- start to evaluate some data 
 - 
virtual void distributeEval(ParameterClient2 *client)¶
- finish() should be called before distributeEval 
 - 
virtual real evalImp(std::vector<Argument> &arguments)¶
- Process a batch of data. return the score for the batch if it make sense to sum the score across batches. Otherwise evaluator should return 0 and override finish() and printStats() to do the right calculation. 
 - 
void eval1(int *output, int *label, int length)¶
 - 
bool isChunkEnd(int prevTag, int prevType, int tag, int type)¶
 - 
bool isChunkBegin(int prevTag, int prevType, int tag, int type)¶
 
- 
virtual void 
CTCEvaluator¶
- 
class paddle::CTCErrorEvaluator¶
- calculate sequence-to-sequence edit distance - Inherits from paddle::Evaluator - Public Functions - 
CTCErrorEvaluator()¶
 - 
virtual real evalImp(std::vector<Argument> &arguments)¶
- Process a batch of data. return the score for the batch if it make sense to sum the score across batches. Otherwise evaluator should return 0 and override finish() and printStats() to do the right calculation. 
 - 
virtual void eval(const NeuralNetwork &nn)¶
- Process a batch of data. 
 - 
virtual void start()¶
- start to evaluate some data 
 - 
virtual void distributeEval(ParameterClient2 *client)¶
- finish() should be called before distributeEval 
 
- 
Rank¶
PnpairEvaluator¶
- 
class paddle::PnpairEvaluator¶
- Positive-negative pair rate Evaluator - Inherits from paddle::Evaluator - Public Functions - 
PnpairEvaluator()¶
 - 
virtual void start()¶
- start to evaluate some data 
 - 
virtual real evalImp(std::vector<Argument> &arguments)¶
- Process a batch of data. return the score for the batch if it make sense to sum the score across batches. Otherwise evaluator should return 0 and override finish() and printStats() to do the right calculation. 
 - 
void printPredictResults()¶
 - 
void stat(size_t start, size_t end, PredictionResult *answers, double &pos, double &neg, double &spe)¶
 - 
void calc(std::vector<PredictionResult> &predictArray)¶
 - 
virtual void finish()¶
- finish the evaluation. 
 - 
virtual void distributeEval(ParameterClient2 *client)¶
- finish() should be called before distributeEval 
 - Public Members - 
std::vector<PredictionResult> predictArray_¶
 
- 
AucEvaluator¶
- 
class paddle::RankAucEvaluator¶
- RankAucEvaluator calculates the AUC of each list (i.e., titles under the same query), and averages them. - Each list should be organized as a sequence. The inputs of this evaluator is [output, click, pv]. If pv is not provided, it will be set to 1. The types of click and pv are dense value. - Inherits from paddle::Evaluator - Public Functions - 
virtual void start()¶
- start to evaluate some data 
 - 
virtual void updateSamplesNum(const std::vector<Argument> &arguments)¶
- Update the number of processed samples 
 - 
virtual real evalImp(std::vector<Argument> &arguments)¶
- Process a batch of data. return the score for the batch if it make sense to sum the score across batches. Otherwise evaluator should return 0 and override finish() and printStats() to do the right calculation. 
 - 
virtual void distributeEval(ParameterClient2 *client)¶
- finish() should be called before distributeEval 
 
- 
virtual void 
Printer¶
ValuePrinter¶
- 
class paddle::ValuePrinter¶
- Inherits from paddle::Evaluator - Public Functions - 
ValuePrinter()¶
 - 
virtual void eval(const NeuralNetwork &nn)¶
- Process a batch of data. 
 - 
virtual void updateSamplesNum(const std::vector<Argument> &arguments)¶
- Update the number of processed samples 
 - 
virtual real evalImp(std::vector<Argument> &arguments)¶
- Process a batch of data. return the score for the batch if it make sense to sum the score across batches. Otherwise evaluator should return 0 and override finish() and printStats() to do the right calculation. 
 
- 
GradientPrinter¶
- 
class paddle::GradientPrinter¶
- Inherits from paddle::Evaluator - Public Functions - 
GradientPrinter()¶
 - 
virtual void eval(const NeuralNetwork &nn)¶
- Process a batch of data. 
 - 
virtual void updateSamplesNum(const std::vector<Argument> &arguments)¶
- Update the number of processed samples 
 - 
virtual real evalImp(std::vector<Argument> &arguments)¶
- Process a batch of data. return the score for the batch if it make sense to sum the score across batches. Otherwise evaluator should return 0 and override finish() and printStats() to do the right calculation. 
 
- 
MaxIdPrinter¶
- 
class paddle::MaxIdPrinter¶
- Inherits from paddle::Evaluator - Public Functions - 
MaxIdPrinter()¶
 - 
virtual void eval(const NeuralNetwork &nn)¶
- Process a batch of data. 
 - 
virtual void updateSamplesNum(const std::vector<Argument> &arguments)¶
- Update the number of processed samples 
 - 
virtual real evalImp(std::vector<Argument> &arguments)¶
- Process a batch of data. return the score for the batch if it make sense to sum the score across batches. Otherwise evaluator should return 0 and override finish() and printStats() to do the right calculation. 
 
- 
MaxFramePrinter¶
- 
class paddle::MaxFramePrinter¶
- Inherits from paddle::Evaluator - Public Functions - 
MaxFramePrinter()¶
 - 
virtual void eval(const NeuralNetwork &nn)¶
- Process a batch of data. 
 - 
virtual void updateSamplesNum(const std::vector<Argument> &arguments)¶
- Update the number of processed samples 
 - 
virtual real evalImp(std::vector<Argument> &arguments)¶
- Process a batch of data. return the score for the batch if it make sense to sum the score across batches. Otherwise evaluator should return 0 and override finish() and printStats() to do the right calculation. 
 
- 
SequenceTextPrinter¶
- 
class paddle::SequenceTextPrinter¶
- Sequence text printer will print text according to index matrix and a dictionary. There can be multiple input to this layer: - 1) If there is only one input, the input must be a matrix containing the sequence of indices; - 2) If there are more than one input, the first input should be ids, and are interpreted as sample ids. - The output format will be: - 1) sequence without sub-sequence, and there is probability. - id \t prob space_seperated_tokens_from_dictionary_according_to_seq - 2) sequence without sub-sequence, and there is not probability. - id \t space_seperated_tokens_from_dictionary_according_to_seq - 3) sequence with sub-sequence, and there is not probability. - id \t space_seperated_tokens_from_dictionary_according_to_sub_seq \t \t space_seperated_tokens_from_dictionary_according_to_sub_seq ... - Typically SequenceTextPrinter layer takes output of maxid or RecurrentGroup with maxid (when generating) as an input. - Inherits from paddle::Evaluator - Public Functions - 
SequenceTextPrinter()¶
 - 
virtual void init(const EvaluatorConfig &config)¶
 - 
virtual void updateSamplesNum(const std::vector<Argument> &arguments)¶
- Update the number of processed samples 
 - 
virtual real evalImp(std::vector<Argument> &arguments)¶
- Process a batch of data. return the score for the batch if it make sense to sum the score across batches. Otherwise evaluator should return 0 and override finish() and printStats() to do the right calculation. 
 
- 
ClassificationErrorPrinter¶
- 
class paddle::ClassificationErrorPrinter¶
- Inherits from paddle::ClassificationErrorEvaluator - Public Functions - 
virtual void updateSamplesNum(const std::vector<Argument> &arguments)¶
- Update the number of processed samples 
 - 
virtual real evalImp(std::vector<Argument> &arguments)¶
- Process a batch of data. return the score for the batch if it make sense to sum the score across batches. Otherwise evaluator should return 0 and override finish() and printStats() to do the right calculation. 
 
- 
virtual void