in optimum/onnxruntime/runs/__init__.py [0:0]
def launch_eval(self):
kwargs = self.task_processor.get_pipeline_kwargs()
# transformers pipelines are smart enought to detect whether the tokenizer or feature_extractor is needed
ort_pipeline = _optimum_pipeline(
task=self.task,
model=self.ort_model,
tokenizer=self.preprocessor,
feature_extractor=self.preprocessor,
accelerator="ort",
**kwargs,
)
transformers_pipeline = _transformers_pipeline(
task=self.task,
model=self.torch_model,
tokenizer=self.preprocessor,
feature_extractor=self.preprocessor,
**kwargs,
)
eval_dataset = self.get_eval_dataset()
print("Running evaluation...")
baseline_metrics_dict = self.task_processor.run_evaluation(
eval_dataset, transformers_pipeline, self.metric_names
)
optimized_metrics_dict = self.task_processor.run_evaluation(eval_dataset, ort_pipeline, self.metric_names)
baseline_metrics_dict.pop("total_time_in_seconds", None)
baseline_metrics_dict.pop("samples_per_second", None)
baseline_metrics_dict.pop("latency_in_seconds", None)
optimized_metrics_dict.pop("total_time_in_seconds", None)
optimized_metrics_dict.pop("samples_per_second", None)
optimized_metrics_dict.pop("latency_in_seconds", None)
self.return_body["evaluation"]["others"]["baseline"].update(baseline_metrics_dict)
self.return_body["evaluation"]["others"]["optimized"].update(optimized_metrics_dict)