main
ifiguero 2025-03-17 16:06:17 -03:00
parent 52949f6aab
commit 470c4453ae
2 changed files with 14 additions and 58 deletions

View File

@ -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'),

View File

@ -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')