The script optimize_LSTM_emulator.py can either train an LSTM emulator with a predefined hyperparameter set, or optimize hyperparameters from a hyperparameter space given in the code inside the "objective" function. The script performs 5 trainings, one for each fold, in order to perform cross validation and saves the trained weights to a defined directory. Examples for running optimize_LSTM_emulator.py: When training a network with known hyperparameters: python3 optimize_LSTM_emulator.py --train_data='data_folder_with_all_folds/training_data_fold_{}.parquett' train --LSTM_size=100 --dense1_size=100 --dense2_size=None --dense3_size=100 --dropout_rate=0 --batch_size=10 --learning_rate=0.01 --number_epochs=100 When optimizing the network with predefined hyperparameter space, defined in the script: python3 optimize_LSTM_emulator.py --train_data='data_folder_with_all_folds/training_data_fold_{}.parquet' optimize --number_trials=10