def main(): os.environ['CUDA_VISIBLE_DEVICES'] = '0' # capture the config path from the run arguments # then process the json configuration file # try: split = 10 training_size = [] accuracy = [] precision = [] recall = [] f1 = [] main_dir = '' args = get_args() for i in range(split): config = process_config_VisOverfit(args.config, i) # except: # print("missing or invalid arguments") # exit(0) # create the experiments dirs create_dirs([ config.callbacks.tensorboard_log_dir, config.callbacks.checkpoint_dir, config.log_dir, config.result_dir ]) print('Create the data generator.') data_loader = UtsClassificationDataLoader(config) total_train_size = data_loader.get_train_size() total_test_size = data_loader.get_test_size() print("total_train_size: " + str(total_train_size)) print("total_test_size: " + str(total_test_size)) print('Create the model.') model = UtsClassificationModel(config, data_loader.get_inputshape(), data_loader.get_nbclasses()) print('Create the trainer') train_size = int(total_train_size / split) * (i + 1) if i == split - 1: print("train_size: " + str(total_train_size)) trainer = UtsClassificationTrainer(model.model, data_loader.get_train_data(), config) main_dir = config.main_dir else: print("train_size: " + str(train_size)) train_data = data_loader.get_train_data() X_train = train_data[0][:train_size, :, :] y_train = train_data[1][:train_size, :] trainer = UtsClassificationTrainer(model.model, [X_train, y_train], config) print('Start training the model.') trainer.train() print('Create the evaluater.') evaluater = UtsClassificationEvaluater(trainer.best_model, data_loader.get_test_data(), data_loader.get_nbclasses(), config) print('Start evaluating the model.') evaluater.evluate() training_size.append(train_size) accuracy.append(evaluater.acc) precision.append(evaluater.precision) recall.append(evaluater.recall) f1.append(evaluater.f1) print("ss") metrics = { "accuracy": accuracy, "precision": precision, "recall": recall, "f1": f1, "training_size": training_size } plot_trainingsize_metric(metrics, main_dir + 'vis_overfit_trainingsize.png')
def main(): os.environ['CUDA_VISIBLE_DEVICES'] = '0' # capture the config path from the run arguments # then process the json configuration file # try: split = 10 training_size = [] best_model_train_loss = [] best_model_val_loss = [] best_model_train_acc = [] best_model_val_acc = [] best_model_train_precision = [] best_model_val_precision = [] best_model_train_recall = [] best_model_val_recall = [] best_model_train_f1 = [] best_model_val_f1 = [] best_model_learning_rate = [] best_model_nb_epoch = [] best_model_train_err = [] best_model_val_err = [] main_dir = '' args = get_args() for i in range(split): config = process_config_VisTrainingSize(args.config, i) # except: # print("missing or invalid arguments") # exit(0) # create the experiments dirs create_dirs([ config.callbacks.tensorboard_log_dir, config.callbacks.checkpoint_dir, config.log_dir, config.result_dir ]) print('Create the data generator.') data_loader = UtsClassificationDataLoader(config) total_train_size = data_loader.get_train_size() total_test_size = data_loader.get_test_size() print("total_train_size: " + str(total_train_size)) print("total_test_size: " + str(total_test_size)) print('Create the model.') model = UtsClassificationModel(config, data_loader.get_inputshape(), data_loader.get_nbclasses()) print('Create the trainer') train_size = int(total_train_size / split) * (i + 1) if i == split - 1: print("train_size: " + str(total_train_size)) trainer = UtsClassificationTrainer(model.model, data_loader.get_train_data(), config) main_dir = config.main_dir else: print("train_size: " + str(train_size)) train_data = data_loader.get_train_data() X_train = train_data[0][:train_size, :, :] y_train = train_data[1][:train_size, :] trainer = UtsClassificationTrainer(model.model, [X_train, y_train], config) print('Start training the model.') trainer.train() best_model_train_loss.append(trainer.best_model_train_loss) best_model_val_loss.append(trainer.best_model_val_loss) best_model_train_acc.append(trainer.best_model_train_acc) best_model_val_acc.append(trainer.best_model_val_acc) best_model_train_precision.append(trainer.best_model_train_precision) best_model_val_precision.append(trainer.best_model_val_precision) best_model_train_recall.append(trainer.best_model_train_recall) best_model_val_recall.append(trainer.best_model_val_recall) best_model_train_f1.append(trainer.best_model_train_f1) best_model_val_f1.append(trainer.best_model_val_f1) best_model_learning_rate.append(trainer.best_model_learning_rate) best_model_nb_epoch.append(trainer.best_model_nb_epoch) best_model_train_err.append(1 - trainer.best_model_train_acc) best_model_val_err.append(1 - trainer.best_model_val_acc) training_size.append(train_size) print("ss") metrics = { "training_size": training_size, "train_err": best_model_train_err, "val_err": best_model_val_err } plot_trainingsize_metric(metrics, main_dir + '/vis_overfit_trainingsize.png')