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())
Esempio n. 3
0
    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())