diff options
author | Daniel Friesel <daniel.friesel@uos.de> | 2021-11-18 12:35:58 +0100 |
---|---|---|
committer | Daniel Friesel <daniel.friesel@uos.de> | 2021-11-18 12:35:58 +0100 |
commit | 323a99b6bdabce8a157c9d0768bdfcf52b265f04 (patch) | |
tree | 64fa6c97e1a8a78fb0d26af972f19dd060f25662 | |
parent | 91563e84617d096058f92a4c074bad0e3a1e0b12 (diff) |
add model generation time to dataref export
-rwxr-xr-x | bin/analyze-archive.py | 7 | ||||
-rwxr-xr-x | bin/analyze-kconfig.py | 23 |
2 files changed, 23 insertions, 7 deletions
diff --git a/bin/analyze-archive.py b/bin/analyze-archive.py index 0835c90..c66570e 100755 --- a/bin/analyze-archive.py +++ b/bin/analyze-archive.py @@ -42,6 +42,7 @@ import logging import random import re import sys +import time import dfatool.cli from dfatool import plotter from dfatool.loader import RawData, pta_trace_to_aggregate @@ -640,6 +641,7 @@ if __name__ == "__main__": by_name, z_limit=args.z_score, remove_outliers=args.remove_outliers ) + constructor_start = time.time() model = PTAModel( by_name, parameters, @@ -649,6 +651,7 @@ if __name__ == "__main__": pta=pta, pelt=args.with_substates, ) + constructor_duration = time.time() - constructor_start if xv_method: xv = CrossValidator(PTAModel, by_name, parameters, arg_count) @@ -829,9 +832,11 @@ if __name__ == "__main__": print("--- param model ---") # get_fitted_sub -> with sub-state detection and modeling + fit_start_time = time.time() param_model, param_info = model.get_fitted( safe_functions_enabled=safe_functions_enabled ) + fit_duration = time.time() - fit_start_time if "paramdetection" in show_models or "all" in show_models: for name in model.names: @@ -1058,6 +1063,8 @@ if __name__ == "__main__": if args.export_dref: dref = raw_data.to_dref() dref.update(model.to_dref(static_quality, lut_quality, analytic_quality)) + dref["constructor duration"] = (constructor_duration, r"\second") + dref["regression duration"] = (fit_duration, r"\second") with open(args.export_dref, "w") as f: for k, v in dref.items(): if type(v) is not tuple: diff --git a/bin/analyze-kconfig.py b/bin/analyze-kconfig.py index be52752..55bf53b 100755 --- a/bin/analyze-kconfig.py +++ b/bin/analyze-kconfig.py @@ -12,6 +12,7 @@ import json import kconfiglib import logging import os +import time import numpy as np @@ -146,13 +147,6 @@ def main(): if args.show_nop_symbols: show_nop_symbols(attributes) - if args.sample_size: - shuffled_data_indices = np.random.permutation( - np.arange(len(attributes.data)) - ) - sample_indices = shuffled_data_indices[: args.sample_size] - raise RuntimeError("Not Implemented") - observations = list() for param, attr in attributes.data: @@ -165,6 +159,14 @@ def main(): } ) + if args.sample_size: + shuffled_data_indices = np.random.permutation(np.arange(len(observations))) + sample_indices = shuffled_data_indices[: args.sample_size] + new_observations = list() + for sample_index in sample_indices: + new_observations.append(observations[sample_index]) + observations = new_observations + if args.export_observations: import lzma @@ -205,6 +207,7 @@ def main(): else: max_std = None + constructor_start = time.time() model = AnalyticModel( by_name, parameter_names, @@ -212,6 +215,7 @@ def main(): force_tree=args.force_tree, max_std=max_std, ) + constructor_duration = time.time() - constructor_start if args.cross_validate: xv_method, xv_count = args.cross_validate.split(":") @@ -237,7 +241,10 @@ def main(): else: logging.warning(f"Skipping LUT model: {e}") lut_model = None + + fit_start_time = time.time() param_model, param_info = model.get_fitted() + fit_duration = time.time() - fit_start_time if xv_method == "montecarlo": static_quality = xv.montecarlo(lambda m: m.get_static(), xv_count) @@ -326,6 +333,8 @@ def main(): if args.export_dref: dref.update(model.to_dref(static_quality, lut_quality, analytic_quality)) + dref["constructor duration"] = (constructor_duration, r"\second") + dref["regression duration"] = (fit_duration, r"\second") with open(args.export_dref, "w") as f: for k, v in dref.items(): if type(v) is not tuple: |