def main(): ctrl = Controller() ctrl.load_dataset_from_file(DATASET_FILE_PATH) if MODE == MODE_TRAIN: from scripts.test_model import BHSMMTestModel from hassbrain_algorithm.models.hmm.bhmm_hp import BernoulliHMM_HandcraftedPriors from hassbrain_algorithm.models.tads import TADS if MODEL_CLASS == BHMM: hmm_model = BHMMTestModel(ctrl) elif MODEL_CLASS == BHSMM: hmm_model = BHSMMTestModel(ctrl) hmm_model.set_training_steps(50) elif MODEL_CLASS == BHMMPC: hmm_model = BernoulliHMM_HandcraftedPriors(ctrl) elif MODEL_CLASS == MCTADS: hmm_model = TADS(ctrl) else: raise ValueError ctrl.register_model(hmm_model, MODEL_NAME) # load domain knowledge if MODEL_CLASS == BHMMPC: path = '/home/cmeier/code/data/hassbrain/datasets/hass_chris_final/data/domain_knowledge.json' act_data, loc_data = load_domain_knowledge(path) ctrl.register_location_info(MODEL_NAME, loc_data) ctrl.register_activity_info(MODEL_NAME, act_data) # load model elif MODE == MODE_BENCH: ctrl.load_model(MODEL_FILE_PATH, MODEL_NAME) else: raise ValueError ctrl.register_benchmark(MODEL_NAME) ctrl.init_model_on_dataset(MODEL_NAME) if MODE == MODE_TRAIN: ctrl.register_loss_file_path(MD_LOSS_FILE_PATH, MODEL_NAME) ctrl.train_model(MODEL_NAME) ctrl.save_model(MODEL_FILE_PATH, MODEL_NAME) # bench the model reports = ctrl.bench_models() # save metrics ctrl.save_df_metrics_to_file(MODEL_NAME, MD_METRICS_FILE_PATH) ctrl.save_df_confusion(MODEL_NAME, MD_CONF_MAT_FILE_PATH) ctrl.save_df_act_dur_dists(MODEL_NAME, MD_ACT_DUR_DISTS_DF_FILE_PATH, DATA_ACT_DUR_DISTS_DF_FILE_PATH) ctrl.save_df_class_accs(MODEL_NAME, MD_CLASS_ACTS_FILE_PATH) # plots if MODE == MODE_TRAIN and MODEL_CLASS != MCTADS: ctrl.save_plot_trainloss(MODEL_NAME, MD_LOSS_IMG_FILE_PATH) ctrl.save_plot_inferred_states(MODEL_NAME, MD_INFST_IMG_FILE_PATH) ctrl.save_plot_act_dur_dists([MODEL_NAME], MD_ACT_DUR_DISTS_IMG_FILE_PATH)
def main(): ctrl = Controller() ctrl.load_dataset_from_file(DATASET_FILE_PATH) #hmm_model = BHMMTestModel(ctrl) #hmm_model = BHSMMTestModel(ctrl) from hassbrain_algorithm.models.hmm.bhmm_hp import BernoulliHMM_HandcraftedPriors hmm_model = BernoulliHMM_HandcraftedPriors(ctrl) ctrl.register_model(hmm_model, MODEL_NAME) # load domain knowledge path = '/home/cmeier/code/data/hassbrain/datasets/hass_chris_final/data/domain_knowledge.json' act_data, loc_data = load_domain_knowledge(path) ctrl.register_location_info(MODEL_NAME, loc_data) ctrl.register_activity_info(MODEL_NAME, act_data) # load model #ctrl.load_model(MODEL_FILE_PATH, MODEL_NAME) from scripts.test_model import BHSMMTestModel ctrl.register_benchmark(MODEL_NAME) ctrl.init_model_on_dataset(MODEL_NAME) ctrl.register_loss_file_path(MD_LOSS_FILE_PATH, MODEL_NAME) ctrl.train_model(MODEL_NAME) # bench the model reports = ctrl.bench_models() # save metrics ctrl.save_df_metrics_to_file(MODEL_NAME, MD_METRICS_FILE_PATH) ctrl.save_df_confusion(MODEL_NAME, MD_CONF_MAT_FILE_PATH) ctrl.save_df_act_dur_dists(MODEL_NAME, MD_ACT_DUR_DISTS_DF_FILE_PATH, DATA_ACT_DUR_DISTS_DF_FILE_PATH) # plots ctrl.save_plot_trainloss(MD_LOSS_IMG_FILE_PATH, MODEL_NAME) ctrl.plot_and_save_inferred_states(MD_INFST_IMG_FILE_PATH, MODEL_NAME) ctrl.save_plot_act_dur_dists(MODEL_NAME, MD_ACT_DUR_DISTS_IMG_FILE_PATH, DATA_ACT_DUR_DISTS_IMG_FILE_PATH)