def load_results(exp_cfgs): exp_cfgs = exp_cfgs[0] + exp_cfgs[1] sources, targets = {}, {} for i, exp_cfg in enumerate(exp_cfgs): cwd = os.getcwd() batch = jobfactory.make_jobgroup([exp_cfg]) os.chdir(os.path.expanduser(exp_cfg.meta.rootpath)) results_hub = hub.ResultsHub(batch, kind='cov') src_data = results_hub.data() assert len(src_data) == 1 results = {'exp_cfg': exp_cfg} results.update(src_data[0]) if len(exp_cfg.exp.key[1]) == 0: sources[(exp_cfg.exp.env_name, exp_cfg.exp.explorer_name)] = results else: if len(src_data[0]['avg']) == 0: print('MISSING: {}'.format(exp_cfg.exp.key)) else: targets[exp_cfg.exp.key] = results os.chdir(cwd) return sources, targets
def load_data(kind): cwd = os.getcwd() Ns = [1000, 2000, 5000, 10000] ps, avgs, stds = ({(env, d, N): [] for env in env_names for d in disturbs for N in Ns}, {(env, d, N): {} for env in env_names for d in disturbs for N in Ns}, {(env, d, N): {} for env in env_names for d in disturbs for N in Ns}) ds = [0.001, 0.05, 0.5] env_keys = [] min_avgs, min_stds = {}, {} for i, exp_cfg in enumerate(exp_cfgs): if exp_cfg.exploration.explorer.ex_1.learner.m_disturb in ds: batch = jobfactory.make_jobgroup([exp_cfg]) os.chdir(os.path.expanduser(exp_cfg.meta.rootpath)) results_hub = hub.ResultsHub(batch, kind=kind) data = results_hub.data()[0] d = exp_cfg.exploration.explorer.ex_1.learner.m_disturb p = exp_cfg.exploration.explorer.weights[1][0] for N in Ns: env = exp_cfg.exp.env_name index = data['ticks'].index(N) env_key = (env, d, N) ps[env_key].append(p) avgs[env_key][p] = data['avg'][index] stds[env_key][p] = data['std'][index] if p == 0: env_keys.append(env_key) for t in data['ticks']: env_name = exp_cfg.exp.env_name env_key = (env_name, d, t) min_avgs.setdefault(env_key, float('inf')) index = data['ticks'].index(t) if min_avgs[env_key] >= data['avg'][index]: min_avgs[env_key] = data['avg'][index] min_stds[env_key] = data['std'][index] for env_key in env_keys: ps[env_key] = sorted(ps[env_key]) avgs[env_key] = np.array([avgs[env_key][p] for p in ps[env_key]]) stds[env_key] = np.array([stds[env_key][p] for p in ps[env_key]]) os.chdir(cwd) return env_keys, ps, avgs, stds, min_avgs, min_stds
from fig3_8_unreach_graph import ratios, avgs, stds from figB_4_adapt_reach_grid_cluster import expcfgs_levels, windows, RESS #Ns = [100, 1000, 2000, 5000, 10000] Ns = [2000, 10000] W = windows[0] cwd = os.getcwd() adapt_avgs = {} adapt_stds = {} for i, exp_cfg in enumerate(expcfgs_levels[0]): batch = jobfactory.make_jobgroup([exp_cfg]) os.chdir(os.path.expanduser(exp_cfg.meta.rootpath)) data = hub.ResultsHub(batch, kind='nn').data()[0] window = exp_cfg.exploration.explorer.ex_1.window res = exp_cfg.exploration.explorer.ex_1.res for N in Ns: print(data['ticks']) index = data['ticks'].index(N) adapt_avgs[(window, N, res)] = data['avg'][index] adapt_stds[(window, N, res)] = data['std'][index] os.chdir(cwd) # for N in Ns: # for w in windows: # print('N={}, w={} : {} +- {}'.format(N, w, adapt_avgs[(w, N, 20)], adapt_stds[(w, N, 20)])) # print()
ticks = [2000, 10000] ratios_ = range(0, 101, 5) ratios, avgs, stds = {tick: [] for tick in ticks}, {tick: [] for tick in ticks }, {tick: [] for tick in ticks} y_max = 0.0 cwd = os.getcwd() for i, exp_cfg in enumerate(exp_cfgs): batch = jobfactory.make_jobgroup([exp_cfg]) os.chdir(os.path.expanduser(exp_cfg.meta.rootpath)) results_hub = hub.ResultsHub(batch, kind='nn') src_data = results_hub.data() assert len(src_data) == 1 for tick in ticks: try: index = src_data[0]['ticks'].index(tick) ratios[tick].append(ratios_[i]) avgs[tick].append(src_data[0]['avg'][index]) stds[tick].append(src_data[0]['std'][index]) y_max = max(y_max, max(avgs[tick]) + max(stds[tick])) except ValueError: pass os.chdir(cwd)
RESS = [20, 40] Ns = [10000] KIND = 'nn' mbratio_env_keys, ps, avgs, stds, min_avgs, min_stds = load_data(KIND) cwd = os.getcwd() adapt_avgs = {} adapt_stds = {} for i, exp_cfg in enumerate(expcfgs_levels[0]): batch = jobfactory.make_jobgroup([exp_cfg]) os.chdir(os.path.expanduser(exp_cfg.meta.rootpath)) data = hub.ResultsHub(batch, kind=KIND).data()[0] res = exp_cfg.exploration.explorer.res d = exp_cfg.exploration.explorer.ex_1.learner.m_disturb # for N in cfg.testsnn.ticks: for N in Ns: index = data['ticks'].index(N) adapt_avgs[(d, res, N)] = data['avg'][index] adapt_stds[(d, res, N)] = data['std'][index] os.chdir(cwd) # for d in disturbs: # for N in Ns: # print('N={}: {} +- {}'.format(N, adapt_avgs[(d, res, N)], adapt_stds[(d, res N)]))
dims, avgs, stds = {}, {}, {} y_max = 0.0 cwd = os.getcwd() displayed_dims = [2, 5, 7, 10, 15, 20, 30, 40, 60, 80, 100] #, 500, 1000]#, 2000] for i, exp_cfg in enumerate(expcfgs_levels[0]): dim = exp_cfg.job.env.dim if dim in displayed_dims: batch = jobfactory.make_jobgroup([exp_cfg]) os.chdir(os.path.expanduser(exp_cfg.meta.rootpath)) results_hub = hub.ResultsHub(batch, kind='cov') data = results_hub.data()[0] ex_name = exp_cfg.exp.explorer_name dims.setdefault(ex_name, []) avgs.setdefault(ex_name, []) stds.setdefault(ex_name, []) dims[ex_name].append(dim) avgs[ex_name].append(data['avg'][-1]) stds[ex_name].append(data['std'][-1]) y_max = max(y_max, data['avg'][-1] + data['std'][-1]) os.chdir(cwd) colors = ['#2577B2', '#E84A5F']