easy_rec/python/protos/eval.proto (75 lines of code) (raw):
syntax = "proto2";
package protos;
message AUC {
optional uint32 num_thresholds = 1 [default = 200];
}
message RecallAtTopK {
optional uint32 topk = 1 [default = 5];
}
message AvgPrecisionAtTopK {
optional uint32 topk = 1 [default = 5];
}
message MeanAbsoluteError {
}
message MeanSquaredError {
}
message Accuracy {
}
message Precision {
}
message Recall {
}
message Max_F1 {
}
message RootMeanSquaredError {
}
message GAUC {
// uid field name
required string uid_field = 1;
// reduction method for auc of different users
// * "mean": simple mean of different users
// * "mean_by_sample_num": weighted mean with sample num of different users
// * "mean_by_positive_num": weighted mean with positive sample num of different users
optional string reduction = 2 [default='mean'];
}
message SessionAUC {
// session id field name
required string session_id_field = 1;
// reduction: reduction method for auc of different sessions
// * "mean": simple mean of different sessions
// * "mean_by_sample_num": weighted mean with sample num of different sessions
// * "mean_by_positive_num": weighted mean with positive sample num of different sessions
optional string reduction = 2 [default='mean'];
}
message EvalMetrics {
oneof metric {
AUC auc = 1;
RecallAtTopK recall_at_topk = 2;
MeanAbsoluteError mean_absolute_error = 3;
MeanSquaredError mean_squared_error = 4;
Accuracy accuracy = 5;
Max_F1 max_f1 = 6;
RootMeanSquaredError root_mean_squared_error = 7;
GAUC gauc = 8;
SessionAUC session_auc = 9;
Recall recall = 10;
Precision precision = 11;
AvgPrecisionAtTopK precision_at_topk = 12;
}
}
// Message for configuring EasyRecModel evaluation jobs (eval.py).
message EvalConfig {
// Number of examples to process of evaluation.
optional uint32 num_examples = 1 [default = 0];
// How often to run evaluation.
optional uint32 eval_interval_secs = 2 [default = 300];
// Maximum number of times to run evaluation. If set to 0, will run forever.
optional uint32 max_evals = 3 [default = 0];
// Whether the TensorFlow graph used for evaluation should be saved to disk.
optional bool save_graph = 4 [default = false];
// Type of metrics to use for evaluation.
// possible values:
repeated EvalMetrics metrics_set = 5;
// Evaluation online with batch forward data of training
optional bool eval_online = 6 [default = false];
}