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
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