Example #1
0
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
Example #2
0
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()
Example #4
0
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)
Example #5
0
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)]))
Example #6
0
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']