예제 #1
0
import inspect
import os

from csrank.util import configure_logging_numpy_keras

if __name__ == '__main__':
    DIR_PATH = os.path.dirname(
        os.path.abspath(inspect.getfile(inspect.currentframe())))
    log_path = os.path.join(DIR_PATH, 'logs', 'test.log')
    configure_logging_numpy_keras(log_path=log_path, name="Test")
    if cindex <= 0:
        folder = "{}_single_fold"
        result_folder = "single_cv_results"
    else:
        folder = "{}_multiple_folds"
        result_folder = "multiple_cv_results"
        file_name_format.format(file_name_format, cindex)

    log_path = os.path.join(
        DIR_PATH, folder.format('logs'),
        file_name_format.format(dataset_str, ranker_name) + '.log')

    random_state = np.random.RandomState(seed=seed)
    create_dir_recursively(log_path, True)
    # log_path = rename_file_if_exist(log_path)
    logger = configure_logging_numpy_keras(seed=random_state.randint(2**32),
                                           log_path=log_path)
    logger.debug(arguments)
    dataset_function_params['random_state'] = random_state
    ranker, dataset_reader = get_ranker_and_dataset_functions(
        ranker_name, dataset_name, dataset_function_params, problem)

    X_train, Y_train, X_test, Y_test = dataset_reader.get_single_train_test_split(
    )
    n_features, n_objects = log_test_train_data(X_train, X_test, logger)
    ranker_params, fit_params, parameter_ranges = get_ranker_parameters(
        ranker_name, n_features, n_objects, dataset_name,
        dataset_function_params)

    logger.info("ranker_params {} fit_params {}".format(
        ranker_params, fit_params))
    # Finally, fit a model on the complete training set:

if __name__ == '__main__':
    arguments = docopt(__doc__)
    n_objects = int(arguments['--n_objects'])
    dirname = os.path.dirname(os.path.abspath(inspect.getfile(inspect.currentframe())))
    log_path = os.path.join(dirname, "logs", "generalizing_mean_{}.log".format(n_objects))
    df_path = os.path.join(dirname, "logs", "generalizing_mean_{}.csv".format(n_objects))
    log_path = rename_file_if_exist(log_path)
    df_path = rename_file_if_exist(df_path)
    random_state = np.random.RandomState(seed=42)
    seed = random_state.randint(2 ** 32)

    rows_list = []

    logger = configure_logging_numpy_keras(seed=seed, log_path=log_path)

    X_train, Y_train, _, _ = generate_medoid_dataset(n_objects=n_objects, random_state=seed)
    n_instances, n_objects, n_features = X_train.shape
    epochs = 1000
    params = {"n_objects": n_objects, "n_object_features": n_features, "use_early_stopping": True}

    logger.info("############################# With Default Set layers ##############################")
    gor = FATEObjectRanker(n_hidden_set_layers=2, n_hidden_set_units=2, **params)
    result = get_evaluation_result(gor, X_train, Y_train, epochs)
    result[MODEL] = "2SetLayersDefaultParams"
    rows_list.append(result)

    logger.info("############################# With 32 set layers ##############################")
    gor = FATEObjectRanker(n_hidden_set_layers=32, n_hidden_set_units=32, **params)
    result = get_evaluation_result(gor, X_train, Y_train, epochs)