Пример #1
0
def run_exp(params, verbose):
    print_params(params)

    n_episodes = 10000

    episode_params = dict(n_way=params.n_way,
                          n_support=params.n_shot,
                          n_query=params.n_query,
                          n_semi=params.n_semi)

    model = ProtoSemi(opt=params)
    model = model.cuda()

    train_mean, cl_data_file = load_features(params)

    acc_list = []
    start_time = time.perf_counter()
    for i in range(1, n_episodes + 1):
        acc = run_episode(train_mean, cl_data_file, model, **episode_params)
        acc_list += acc
        if i % verbose == 0:
            print_msg(i, n_episodes, start_time, acc_list, acc)
    res = [avg(acc_list[ind::len(acc)]) for ind in range(len(acc))]
    ci = [ci_95(acc_list[ind::len(acc)]) for ind in range(len(acc))]
    return res, ci
Пример #2
0
def run_exp(params, verbose):
    print_params(params)
    n_episodes = 10000

    few_shot_params = dict(n_way=params.n_way, n_support=params.n_shot)
    model = ProtoMSP(opt=params)
    model = model.cuda()
    train_mean, cl_data_file = load_features(params)

    time_list = []
    name = [
        'baseline',
        'sub reg',
        'sub',
        'pca',
        'ica',
        'cluster',
        'pca cluster',
        'ica cluster',
        'msp',
        'pca msp',
        'ica msp',
    ]
    for i in range(1, n_episodes + 1):
        times = run_episode(train_mean,
                            cl_data_file,
                            model,
                            n_query=params.n_query,
                            **few_shot_params)
        time_list.append(times)
        if i % verbose == 0:
            tl = sum(time_list) / len(time_list)
            msg = ''
            for k, v in zip(name, tl):
                msg += f'{k}: {v:.2e}, '
            print(msg)
    return