def chemprop_hyperopt() -> None: """Runs hyperparameter optimization for chemprop model.""" grid_search(HyperoptArgs().parse_args())
def chemprop_hyperopt() -> None: """Runs hyperparameter optimization for a Chemprop model. This is the entry point for the command line command :code:`chemprop_hyperopt`. """ hyperopt(args=HyperoptArgs().parse_args())
fmin(objective, SPACE, algo=tpe.suggest, max_evals=args.num_iters, rstate=np.random.RandomState(args.seed)) # Report best result results = [ result for result in results if not np.isnan(result['mean_score']) ] best_result = min(results, key=lambda result: (1 if args.minimize_score else -1) * result['mean_score']) logger.info('best') logger.info(best_result['hyperparams']) logger.info(f'num params: {best_result["num_params"]:,}') logger.info( f'{best_result["mean_score"]} +/- {best_result["std_score"]} {args.metric}' ) # Save best hyperparameter settings as JSON config file makedirs(args.config_save_path, isfile=True) with open(args.config_save_path, 'w') as f: json.dump(best_result['hyperparams'], f, indent=4, sort_keys=True) if __name__ == '__main__': grid_search(HyperoptArgs().parse_args())