def evaluate(dataset, LOG, **kwargs):
    """
    Given a dataset name, applies the correct evaluation function.

    Args:
        dataset: str, name of dataset.
        LOG:     aux.LOGGER instance, main logging class.
        **kwargs: Input Argument Dict, depends on dataset.
    Returns:
        (optional) Computed metrics. Are normally written directly to LOG and printed.
    """
    if dataset in ["Inaturalist", "semi_fungi"]:
        ret = evaluate_one_dataset(LOG, **kwargs)
    elif dataset in ["vehicle_id"]:
        ret = evaluate_multiple_datasets(LOG, **kwargs)
    else:
        raise Exception("No implementation for dataset {} available!")

    return ret

    Given a dataset name, applies the correct evaluation function.

    Args:
        dataset: str, name of dataset.
        LOG:     aux.LOGGER instance, main logging class.
        **kwargs: Input Argument Dict, depends on dataset.
    Returns:
        (optional) Computed metrics. Are normally written directly to LOG and printed.
    
examples/pytorch/hilander/PSS/Smooth_AP/src/evaluate.py