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])
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)
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'])
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])