From 886b02d0e4db6e7b513e7ad753d6da7f0ac6e541 Mon Sep 17 00:00:00 2001 From: lukas leufen <l.leufen@fz-juelich.de> Date: Thu, 14 Nov 2019 17:15:32 +0100 Subject: [PATCH] more parameters set in experiment setup, log all set params in debug mode --- .gitignore | 1 + run.py | 44 ++++++++++++++++++++++++++++++++------------ src/helpers.py | 2 +- 3 files changed, 34 insertions(+), 13 deletions(-) diff --git a/.gitignore b/.gitignore index 3ecdfc9d..31cfe991 100644 --- a/.gitignore +++ b/.gitignore @@ -56,3 +56,4 @@ htmlcov/ .pytest_cache /test/data/ report.html +/TestExperiment/ diff --git a/run.py b/run.py index 3cedc2d9..c9523595 100644 --- a/run.py +++ b/run.py @@ -38,25 +38,44 @@ class run(object): class ExperimentSetup: + """ + params: + trainable: Train new model if true, otherwise try to load existing model + """ - def __init__(self): + def __init__(self, trainable=False): self.data_path = None self.experiment_path = None self.experiment_name = None - self.trainable = False - self.setup_experiment() + self.trainable = None + self.fraction_of_train = None + self.use_all_stations_on_all_data_sets = None + self.setup_experiment(trainable) - def setup_experiment(self): + def _set_param(self, param, value): + setattr(self, param, value) + logging.debug(f"set attribute: {param}={value}") + + def setup_experiment(self, trainable): # set data path of this experiment - self.data_path = helpers.prepare_host() + self._set_param("data_path", helpers.prepare_host()) # set experiment name - experiment_date = parser.parse_args(["experiment_date"]) - self.experiment_name, self.experiment_path = helpers.set_experiment_name(experiment_date=experiment_date) + exp_date = args.experiment_date + exp_name, exp_path = helpers.set_experiment_name(experiment_date=exp_date) + self._set_param("experiment_name", exp_name) + self._set_param("experiment_path", exp_path) + helpers.check_path_and_create(self.experiment_path) + + # set if model is trainable + self._set_param("trainable", trainable) + + # set fraction of train + self._set_param("fraction_of_train", 0.8) - # set if model shall be trained or not - self.trainable = True + # use all stations on all data sets (train, val, test) + self._set_param("use_all_stations_on_all_data_sets", True) class PreProcessing(run): @@ -83,11 +102,12 @@ class PostProcessing(run): if __name__ == "__main__": parser = argparse.ArgumentParser() - parser.add_argument('experiment date', metavar='exp_date', type=str, nargs=1, help='set experiment date as string', - default=None) + parser.add_argument('--experiment_date', metavar='--exp_date', type=str, nargs=1, default=None, + help="set experiment date as string") + args = parser.parse_args() with run(): - exp_setup = ExperimentSetup() + exp_setup = ExperimentSetup(trainable=True) PreProcessing(exp_setup) diff --git a/src/helpers.py b/src/helpers.py index 6f8af63b..4fd5cc2b 100644 --- a/src/helpers.py +++ b/src/helpers.py @@ -161,7 +161,7 @@ def prepare_host(): def set_experiment_name(experiment_date=None, experiment_path=None): if experiment_date is None: - experiment_name = "" + experiment_name = "TestExperiment" else: experiment_name = f"{experiment_date}_network/" if experiment_path is None: -- GitLab