Exemplo n.º 1
0
def load_model(project_dir, mode, hypers=False, build=True):
    """
    Load config from project directory and return BEAT problem including model.

    Parameters
    ----------
    project_dir : string
        path to beat model directory
    mode : string
        problem name to be loaded
    hypers : boolean
        flag to return hyper parameter estimation model instead of main model.
    build : boolean
        flag to build models

    Returns
    -------
    problem : :class:`Problem`
    """
    try:
        config = bconfig.load_config(project_dir, mode)
    except ArgumentError:
        raise ConfigNeedsUpdatingError()

    pc = config.problem_config

    if hypers and len(pc.hyperparameters) == 0:
        raise ValueError('No hyperparameters specified!'
                         ' option --hypers not applicable')

    if pc.mode in problem_catalog.keys():
        problem = problem_catalog[pc.mode](config, hypers)
    else:
        logger.error('Modeling problem %s not supported' % pc.mode)
        raise ValueError('Model not supported')

    if build:
        if hypers:
            problem.built_hyper_model()
        else:
            problem.built_model()

    return problem
Exemplo n.º 2
0
def load_model(project_dir, mode, hypers=False):
    """
    Load config from project directory and return BEAT problem including model.

    Parameters
    ----------
    project_dir : string
        path to beat model directory
    mode : string
        problem name to be loaded
    hypers : boolean
        flag to return hyper parameter estimation model instead of main model.

    Returns
    -------
    :class:`Problem`
    """

    config = bconfig.load_config(project_dir, mode)

    pc = config.problem_config

    if hypers and len(pc.hyperparameters) == 0:
        raise Exception('No hyperparameters specified!'
        ' option --hypers not applicable')

    if pc.mode == 'geometry':
        problem = GeometryOptimizer(config)
    else:
        logger.error('Modeling problem %s not supported' % pc.mode)
        raise Exception('Model not supported')

    if hypers:
        problem.built_hyper_model()
    else:
        problem.built_model()
    return problem