| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354 |
- # !/usr/bin/env python3
- # -*- coding: UTF-8 -*-
- ################################################################################
- #
- # Copyright (c) 2024 Baidu.com, Inc. All Rights Reserved
- #
- ################################################################################
- """
- Author: PaddlePaddle Authors
- """
- import tarfile
- from pathlib import Path
- from ..base import BaseEvaluator
- from .model_list import MODELS
- class TSADEvaluator(BaseEvaluator):
- """ TS Anomaly Detection Model Evaluator """
- entities = MODELS
- def update_config(self):
- """update evalution config
- """
- self.pdx_config.update_dataset(self.global_config.dataset_dir,
- "TSADDataset")
- self.pdx_config.update_weights(self.eval_config.weight_path)
- def uncompress_tar_file(self):
- """unpackage the tar file containing training outputs and update weight path
- """
- if tarfile.is_tarfile(self.eval_config.weight_path):
- dest_path = Path(self.eval_config.weight_path).parent
- with tarfile.open(self.eval_config.weight_path, 'r') as tar:
- tar.extractall(path=dest_path)
- self.eval_config.weight_path = dest_path.joinpath(
- "best_accuracy.pdparams/best_model/model.pdparams")
- def evaluate(self):
- """firstly, update evaluation config, then evaluate model, finally return the evaluation result
- """
- self.uncompress_tar_file()
- return super().evaluate()
- def get_eval_kwargs(self) -> dict:
- """get key-value arguments of model evalution function
- Returns:
- dict: the arguments of evaluation function.
- """
- return {
- "weight_path": self.eval_config.weight_path,
- "device": self.get_device(using_device_number=1)
- }
|