示例#1
0
文件: ppo2-gt.py 项目: llach/ma-code
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')
ax.set_xlabel('Steps')
plt.xticks(tick_setup[0], tick_setup[1])
示例#2
0
from forkan.common.utils import read_keys, setup_plotting, get_figure_size

logger = logging.getLogger(__name__)

ylims, tick_setup = setup_plotting()

home = os.environ['HOME']
models_dir = f'{home}/.forkan/done/pendulum/ppo2-beta-exp'
col = ['#8cd17d', '#b6992d', '#f1ce63', '#499894', '#86bcb6']

for rlc in [1, 30]:
    fig, ax = plt.subplots(1, 1, figsize=get_figure_size())
    i = 0
    for beta in [5, 20, 30, 60, 80]:

        data = read_keys(models_dir, [f'rlc{rlc}-', f'b{beta}-'],
                         ['mean_reward', 'total_timesteps'])

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

        ax.plot(xs,
                np.nanmedian(ys, axis=0),
                label=f'$\\beta={beta}$',
                color=col[i])
        ax.fill_between(xs,
                        np.nanpercentile(ys, 25, axis=0),
                        np.nanpercentile(ys, 75, axis=0),
                        alpha=0.33,
                        color=col[i])
        i += 1
    plt.ylim(**ylims)
示例#3
0
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'])
ret_mse_test = np.squeeze(data['mse_test'])
ret_nbatch = np.squeeze(data['nbatch'])

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

vae_mae_train = np.squeeze(data['mae_train'])
vae_mae_test = np.squeeze(data['mae_test'])
vae_mse_train = np.squeeze(data['mse_train'])
vae_mse_test = np.squeeze(data['mse_test'])
vae_nbatch = np.squeeze(data['nbatch'])
示例#4
0
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()
fig, ax = plt.subplots(1, 1, figsize=get_figure_size())

home = os.environ['HOME']
models_dir = f'{home}/.forkan/done/pendulum/ppo2-pendcnn'

for num_hid in [16, 32, 64, 512]:
    data = read_keys(models_dir, f'lathid{num_hid}-',
                     ['mean_reward', 'total_timesteps'])

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

    ax.plot(xs[0], np.nanmedian(ys, axis=0), label=f'$N={num_hid}$')
    ax.fill_between(xs[0],
                    np.nanpercentile(ys, 25, axis=0),
                    np.nanpercentile(ys, 75, axis=0),
                    alpha=0.33)

plt.ylim(**ylims)

ax.set_ylabel('Median Reward')
ax.set_xlabel('Steps')
plt.xticks(tick_setup[0], tick_setup[1])