コード例 #1
0
                                  experiment)
    meta_data_file = os.path.join(experiment_dir, 'results', 'metadata.json')

    ids = [9313361527064236, 7598351433769390]

    cmap = cm.get_cmap('jet')
    colors = ["#0066ff", "green", "red"]

    label = ["NSAS", "EARN+NSAS", "EARN"]
    markers = ["*", "D"] * 2
    phase = 'test'

    for j, id in enumerate(ids):
        chain_data_path = os.path.join(
            experiment_dir,
            results_manager.get_results_by_id(meta_data_file, str(id)),
            'results_ensembles.pkl')
        dataset = results_manager.get_fieldval_by_id(meta_data_file, str(id),
                                                     'dataset')[0][12:-18]
        chain = io.read_pickle(chain_data_path)

        acc, time, params = get_acc_time_param_from_results(chain, phase)
        acc_params_subplot(acc,
                           params,
                           colors[j],
                           "",
                           label=label[j],
                           print_front=True,
                           marker=markers[j])
        acc_time_subplot(acc,
                         time,
コード例 #2
0
    return sys


if __name__ == "__main__":

    id_fastest = "__trigger_classifier_0.10000000000000003_V001_VGG13_ref_0____trigger_classifier_0" \
                 ".4_V001_ResNeXt29_32x4d_ref_0__V001_VGG11_ref_0"

    experiment_dir = os.path.join(os.environ['FCM'], 'Examples', 'compute',
                                  'chain_genetic_algorithm')
    metadata_file = os.path.join(experiment_dir, 'results', 'metadata.json')

    id = "7062152700584889"
    dataset = results_manager.get_fieldval_by_id(metadata_file, id, 'dataset')
    results_chain_path = os.path.join(
        experiment_dir, results_manager.get_results_by_id(metadata_file, id))
    results_chain = io.read_pickle(results_chain_path)
    fastest = results_chain[id_fastest]
    acc_result = fastest.test['system'].accuracy
    time_result = fastest.test['system'].time

    # Build same ensemble
    classifiers = [
        os.path.join(os.environ['FCM'], 'Definitions', 'Classifiers',
                     'sota_models_stl10-32-dev_validation',
                     'V001_VGG13_ref_0'),
        os.path.join(os.environ['FCM'], 'Definitions', 'Classifiers',
                     'sota_models_stl10-32-dev_validation',
                     'V001_ResNeXt29_32x4d_ref_0'),
        os.path.join(os.environ['FCM'], 'Definitions', 'Classifiers',
                     'sota_models_stl10-32-dev_validation', 'V001_VGG11_ref_0')
コード例 #3
0
    # 2) Group hypervolume results by EARN parameters
    # 3) Print the parameter configuration that:
    # 3.1) Obtains higher hypervolume in average
    # 3.3) Obtains the higher median hypervolume
    # 3.2) Obtains the higher minimum hypervolume

    avail_params = [
        "population", "offspring", "iterations", "step_th", "pm", "rm", "k"
    ]
    dictval2tuple = lambda d: tuple([d[k] for k in avail_params])
    hvolume_by_configuration = {}

    # Compute hypervolume per EARN run
    for id in ids:
        print("Processing %s" % id)
        GA_res_loc = results_manager.get_results_by_id(metadataset, id)
        GA_params = results_manager.get_fieldval_by_id(metadataset, id,
                                                       "params")[0]

        individuals_gen = io.read_pickle(
            os.path.join(GA_res_loc, 'individuals_fitness_per_generation.pkl'))
        R = io.read_pickle(os.path.join(GA_res_loc, 'results_ensembles.pkl'))
        a = np.array(GA_params["a"])
        hv = hvolume_evolution(R, individuals_gen, a,
                               phase)[-1]  # Only interested in the last run

        key = dictval2tuple(GA_params)
        hvs_all = hvolume_by_configuration.get(key, [])
        hvs_all.append(hv)
        hvolume_by_configuration[key] = hvs_all
コード例 #4
0
            "pm": 0.2,
            "rm": 0.8,
            "k": 1,
            "a": [
                1,
                1,
                1
            ]
    }

    ids = results_manager.get_ids_by_fieldval(metadata_file, "params", params_match)
    improvements = np.zeros((3, 3))
    ref = None

    for id in ids:
        R_path = results_manager.get_results_by_id(metadata_file, id)
        individuals_fitness_generation = io.read_pickle(os.path.join(R_path, 'individuals_fitness_per_generation.pkl'))
        R_dict = io.read_pickle(os.path.join(R_path, 'results_ensembles.pkl'))

        # Last generation of ensembles
        last_generation = individuals_fitness_generation[-1][0]
        R_dict_last = {ensemble_id: R_dict[ensemble_id] for ensemble_id in last_generation}

        # Most accurate NN as reference point
        if ref is None:
            r_ref = get_most_accurate_nn_result(R_dict, phase)
            ref = np.array([1-r_ref["system"].accuracy, r_ref["system"].time, r_ref["system"].params])

        # Evaluation results to numpy array
        obj = results_to_numpy(R_dict_last, phase)
コード例 #5
0
           1943013241626030,
           9283423602893484,
           4453353588233325,
           1600106112124184,
           6104062115638786]

    label = ["Bagging average",
             "Bagging voting",
             "Bagging max",
             "Boosting average",
             "Boosting voting",
             "Boosting max",
             "Chain"]

    cmap = cm.get_cmap('jet')
    colors = cmap(np.linspace(0, 1.0, 3))
    linestyle = ["-", "-", "-", "--", "--", "--", "-."]

    for j, id in enumerate(ids):
        result_location = os.path.join(result_manager.get_results_by_id(metadata_file, id), "results_ensembles")
        exec_params = result_manager.get_fieldval_by_id(metadata_file, id, "params")[0]
        R = io.read_pickle(result_location)
        if "hain" in label[j]:
            R_models = io.read_pickle(os.path.join(result_manager.get_results_by_id(metadata_file, id), "models.pkl"))
            plot_optimal_combinations_chain(R, R_models, resolution=50, label=label[j], color=colors[j % 3], linestyle=linestyle[j])
        # plot_optimal_combinations_merger(R, resolution=50, label=label[j], color=colors[j%3], linestyle=linestyle[j])


    plt.legend()
    plt.show()
コード例 #6
0
    subplot_most_fit_chain(evaluation_results, ax)

    ax[0].legend()
    ax[1].legend()
    ax[2].legend()
    return ax


if __name__ == "__main__":
    plt.rcParams.update({'font.size': 6})

    experiment = 'bagging_boosting_of_chains_GA'
    id = 4289297487379981
    experiment_dir = os.path.join(os.environ['FCM'], 'Examples', 'compute', experiment)
    meta_data_file = os.path.join(experiment_dir, 'results', 'metadata.json')
    earn_evaluations_location = results_manager.get_results_by_id(meta_data_file, id)

    sys.modules['Source'] = Source  # Due to refactor of the module
    earn_evaluations = io.read_pickle(earn_evaluations_location + '/results_ensembles.pkl')
    ax = plot_acc_time_param_tradeoff(earn_evaluations)

    """
    brute_force_location = os.path.join(os.environ['FCM'],
                                        "Examples/compute/fully_connected_chain/results/sota_models_caltech256-32-dev_validation/3971529594480967/results_ensembles.pkl")
    brute_force_results = io.read_pickle(brute_force_location)
    subplot_acc_time_paretto_front(brute_force_results, ax[0], color='green')
    subplot_acc_params_paretto_front(brute_force_results, ax[1], color='green')
    ax[0].legend()
    ax[1].legend()
    """
コード例 #7
0
    models_front = front.get_front_time_accuracy(models, phase="test")
    sorted_models_front = front.sort_results_by_time(models_front,
                                                     phase="test")

    # 1) G.A. Chain ensembles
    GA_results_metadata_file = os.path.join(os.environ['FCM'], 'Examples',
                                            'compute',
                                            'chain_genetic_algorithm',
                                            'results', 'metadata.json')

    GA_ids = results_manager.get_ids_by_fieldval(GA_results_metadata_file,
                                                 'dataset', dataset)[-3:]

    speedup = []
    for id in GA_ids:
        global_path = results_manager.get_results_by_id(
            GA_results_metadata_file, id)
        #global_path = os.path.join(os.environ['FCM'], 'examples', 'Compute', 'chain_genetic_algorithm', local_path)
        GA_chains = io.read_pickle(global_path)
        front_GA_chain = front.get_front_time_accuracy(GA_chains, phase="test")
        sorted_front_GA_chain = front.sort_results_by_time(front_GA_chain,
                                                           phase="test")
        speedup.append(
            front.get_speedup_front(sorted_models_front,
                                    sorted_front_GA_chain,
                                    e=1e6,
                                    phase="test"))

    if len(speedup) == 1:
        speedup.append(speedup[-1])

    print("Genetic Algorithm:")