From 470c4453aeef91afc09ac4e690bc12c2e3396fff Mon Sep 17 00:00:00 2001 From: Israel Figueroa Date: Mon, 17 Mar 2025 16:06:17 -0300 Subject: [PATCH] long run --- TrainerClass.py | 47 +---------------------------------------------- train_sequence.py | 25 +++++++++++++------------ 2 files changed, 14 insertions(+), 58 deletions(-) diff --git a/TrainerClass.py b/TrainerClass.py index 1aba047..5d3321b 100644 --- a/TrainerClass.py +++ b/TrainerClass.py @@ -97,9 +97,7 @@ class eNoseTrainer: def wrap_and_save(self): self.logger.info("{:=^60}".format(' Saving Summary and Wrap the output in a ZipFile ')) - - - with zipfile.ZipFile('{}-{}.zip'.format(self.name, self.start), 'w', zipfile.ZIP_DEFLATED) as zipf: + with zipfile.ZipFile('{}-{}.zip'.format(self.name, self.start), 'w', zipfile.ZIP_LZMA) as zipf: for root, dirs, files in os.walk(self.name): for file in files: zipf.write(os.path.join(root, file)) @@ -109,49 +107,6 @@ class eNoseTrainer: self.logger.debug(f'Looking for {dataset}, {model}, {self.loader.target}, {self.ratio} => {search_result} {self.ledger.shape}') return search_result - def model_A(self, hp): - - model = Sequential() - model.add(Dense(units=hp.Int('units_input', min_value=48, max_value=56, step=8), input_dim=self.nvars, activation='relu')) - model.add(BatchNormalization()) - model.add(Dropout(rate=hp.Float('dropout_input', min_value=0.1, max_value=0.1, step=0.1))) - - model.add(Dense(units=hp.Int('units_hidden', min_value=32, max_value=48, step=8), activation='relu')) - model.add(BatchNormalization()) - model.add(Dropout(rate=hp.Float('dropout_hidden', min_value=0.4, max_value=0.4, step=0.1))) - - model.add(Dense(1, activation='sigmoid')) - - model.compile(optimizer='adam', loss='binary_crossentropy', metrics=['accuracy', AUC()]) - - return model - - def train_and_score_model_keras(self, X_train, X_test, Y_train, Y_test, seed, label): -# set_random_seed(seed) - ntrials = 6 - tuner = RandomSearch( - self.get_model_train_keras, - objective='val_loss', #val_loss -# seed=seed, - max_trials=ntrials, -# executions_per_trial=1, # Número de ejecuciones por cada configuración - directory=self.name, - project_name='{}-{}'.format(label,seed)) - - self.logger.info("{:~^60}".format(' {}-{} '.format(label,seed))) - - - search_dir = "{}/keras-tuner-{}/".format(self.name,label) - os.makedirs(search_dir, exist_ok=True) - search_callback = TensorBoard(log_dir=search_dir) - early_stopping_search = EarlyStopping(monitor='val_loss', patience=13, min_delta=0.005, start_from_epoch=7, restore_best_weights=True) - tuner.search(X_train, Y_train, epochs=150, batch_size=10, validation_data=(X_test, Y_test), callbacks=[early_stopping_search, search_callback]) - best_hps = tuner.get_best_hyperparameters(num_trials=1)[0] - - self.trained += 1 - self.bar.update() - return mse, mae, rmse, optimized_model, model_params - def get_model_train(self): return [ XGBRegressor(objective='reg:squarederror'), diff --git a/train_sequence.py b/train_sequence.py index 1f0d2c0..47fa6f0 100644 --- a/train_sequence.py +++ b/train_sequence.py @@ -8,20 +8,21 @@ source_channels=["MQ 8", "MQ 9", "MQ 135", "TGS 813", "TGS 821", "TGS 2600", "TG target_variables=['C2H2', 'CH4', 'C3H6', 'CO', 'C2H6', 'C3H8', 'C2H4', 'H2', 'O2'] eNoseLoader = GasSensorDataLoader("enose_dataset", threshold=0.85, source_channels=source_channels, target_list=target_variables, debug=False) -eNose = eNoseTrainer(eNoseLoader, test_size=0.2, debug=True) +eNose = eNoseTrainer(eNoseLoader, test_size=0.2, debug=False) + eNoseLoader.target_list=['H2',] eNose.fit() -# eNoseLoader.target_list=['C2H2',] -# eNose.fit() -# eNoseLoader.target_list=['CH4',] -# eNose.fit() -# eNoseLoader.target_list=['C2H4',] -# eNose.fit() -# eNoseLoader.target_list=['C2H6',] -# eNose.fit() -# eNoseLoader.target_list=['H2', 'C2H2', 'CH4', 'C2H4', 'C2H6',] -# eNose.fit() -# eNose.wrap_and_save() +eNoseLoader.target_list=['C2H2',] +eNose.fit() +eNoseLoader.target_list=['CH4',] +eNose.fit() +eNoseLoader.target_list=['C2H4',] +eNose.fit() +eNoseLoader.target_list=['C2H6',] +eNose.fit() +eNoseLoader.target_list=['H2', 'C2H2', 'CH4', 'C2H4', 'C2H6',] +eNose.fit() +eNose.wrap_and_save() # eNoseLoader.target_list=['H2',] # eNose.gen_plots('Tabular-conv3','XGBRegressor_0')