Example #1
0
import logging
import os

import matplotlib.pyplot as plt
import numpy as np

from forkan.common.utils import read_keys, setup_plotting, get_figure_size

logger = logging.getLogger(__name__)

home = os.environ['HOME']
models_dir = f'{home}/.forkan/done/pendulum/ppo2-gt'
ylims, tick_setup = setup_plotting()

fig, ax = plt.subplots(1, 1, figsize=get_figure_size())

for fi, name in [('', 'beta=1')]:
    data = read_keys(models_dir, fi, ['mean_reward', 'total_timesteps'])

    xs = data['total_timesteps'][0]
    ys = data['mean_reward']

    ax.plot(xs, np.nanmedian(ys, axis=0))
    ax.fill_between(xs,
                    np.nanpercentile(ys, 25, axis=0),
                    np.nanpercentile(ys, 75, axis=0),
                    alpha=0.33)

plt.ylim(**ylims)

ax.set_ylabel('Median Reward')
Example #2
0
import logging
import os

import matplotlib.pyplot as plt
import numpy as np
import seaborn as sns
sns.set()

from forkan.common.utils import read_keys, get_figure_size, setup_plotting

logger = logging.getLogger(__name__)

setup_plotting()
home = os.environ['HOME']
models_dir = f'{home}/.forkan/done/classify-ball/'


def smooth(l, N=1000):
    l = np.asarray(l, np.float32)
    return np.convolve(l, np.ones((N, )) / N, mode='valid')
    # return medfilt(np.asarray(l, dtype=np.float32), 51)


fig, ax = plt.subplots(1, 1, figsize=get_figure_size())

data = read_keys(models_dir, 'RETRAIN-N128',
                 ['nbatch', 'mae_train', 'mse_train', 'mae_test', 'mse_test'])

ret_mae_train = np.squeeze(data['mae_train'])
ret_mae_test = np.squeeze(data['mae_test'])
ret_mse_train = np.squeeze(data['mse_train'])
Example #3
0
import logging
import os

import matplotlib.pyplot as plt
import numpy as np

from forkan.common.utils import read_keys, setup_plotting, get_figure_size

logger = logging.getLogger(__name__)

ylims, tick_setup = setup_plotting('break-baseline')
fig, ax = plt.subplots(1, 1, figsize=get_figure_size())

home = os.environ['HOME']

models_dir = f'{home}/.forkan/done/breakout/ppo2-break-fixed'

colf = '#79706e'
for fi, name in [('b1', '$PPO^{\\text{fixed}}$')]:
    data = read_keys(models_dir, fi, ['mean_reward', 'total_timesteps'])

    xs = data['total_timesteps'][0]
    ys = data['mean_reward']

    plt.plot(xs, np.nanmedian(ys, axis=0), label=name, color=colf)
    plt.fill_between(xs,
                     np.nanpercentile(ys, 25, axis=0),
                     np.nanpercentile(ys, 75, axis=0),
                     alpha=0.33,
                     color=colf)
Example #4
0
import numpy as np
import seaborn as sns
import tensorflow as tf

from forkan import model_path, figure_path
from forkan.common.utils import ls_dir, setup_plotting, get_figure_size
from forkan.models import VAE

sns.set()

logger = logging.getLogger(__name__)

network = 'pendulum'
plt_shape = [1, 5]

ylims = setup_plotting()

home = os.environ['HOME']
models_dir = '{}vae-{}/'.format(model_path, network)
dirs = ls_dir(models_dir)

for fi in ['b1', 'b81', 'b85']:
# for fi in ['b1']:
    for d in dirs:
        ds_name = d.split('/')[-1].split('-')[0]
        model_name = d.split('/')[-1]

        if fi is not None and not '':
            if fi not in model_name:
                logger.info('skipping {}'.format(model_name))
                continue