def optimize(self, n_trials=100, save_params=True): if not TRAIN and os.path.isfile(self.params_path): with open(self.params_path, 'rb') as f: best_params = pickle.load(f) print("Loaded parameters from disk") elif not FINETUNE: best_params = {'lr': LEARNING_RATE, 'gamma': GAMMA} print(f"Using default parameters: {best_params}") else: print("Optimizing hyperparameters") study = optuna.create_study(direction='maximize') study.optimize(self.objective, n_trials=n_trials) best_params = study.best_params if save_params: with open(self.params_path, 'wb') as f: pickle.dump(best_params, f) print("Saved parameters to disk") return best_params