blr_res.py 文件源码

python
阅读 22 收藏 0 点赞 0 评论 0

项目:epsilon_free_inference 作者: gpapamak 项目源码 文件源码
def plot_results(save=True):

    lw = 3
    fontsize=22
    savepath = '../nips_2016/figs/blr/'
    matplotlib.rcParams.update({'font.size': fontsize})
    matplotlib.rc('text', usetex=True)

    eps_rej, kls_rej, n_sims_rej, n_samples_rej = helper.load(plotsdir + 'rejection_abc_results.pkl')
    eps_mcm, kls_mcm, n_sims_mcm, n_samples_mcm, acc_rate_mcm = helper.load(plotsdir + 'mcmc_abc_results.pkl')
    eps_smc, kls_smc, n_sims_smc, n_samples_smc = helper.load(plotsdir + 'smc_abc_results.pkl')
    kl_mdn_prior, kl_prior_prop, kl_mdn_prop, n_sims_mdn_prior, n_sims_prior_prop, n_sims_mdn_prop = helper.load(plotsdir + 'mdn_abc_results.pkl')

    # plot kl vs eps
    fig, ax = plt.subplots(1, 1)
    ax.loglog(eps_rej, kls_rej, lw=lw, label='Rej.~ABC')
    ax.loglog(eps_mcm, kls_mcm, lw=lw, label='MCMC-ABC')
    ax.loglog(eps_smc, kls_smc, lw=lw, label='SMC-ABC')
    ax.loglog(ax.get_xlim(), [kl_mdn_prior]*2, lw=lw, label='MDN with prior')
    ax.loglog(ax.get_xlim(), [kl_prior_prop]*2, lw=lw, label='Proposal prior')
    ax.loglog(ax.get_xlim(), [kl_mdn_prop]*2, lw=lw, label='MDN with prop.')
    ax.set_xlabel(r'$\epsilon$', labelpad=-1.0)
    ax.set_ylabel('KL divergence')
    ax.set_ylim([10**-2, 0.3*10**4])
    ax.legend(ncol=2, loc='upper left', columnspacing=0.3, handletextpad=0.05, labelspacing=0.3, borderaxespad=0.3, handlelength=1.5, fontsize=fontsize)
    fig.subplots_adjust(bottom=0.11)
    if save: fig.savefig(savepath + 'kl_vs_eps.pdf')

    # plot number of simulations vs kl
    fig, ax = plt.subplots(1, 1)
    ax.loglog(kls_rej, n_sims_rej / n_samples_rej, lw=lw, label='Rej.~ABC')
    ax.loglog(kls_mcm, n_sims_mcm / n_samples_mcm, lw=lw, label='MCMC-ABC')
    ax.loglog(kls_smc, n_sims_smc / n_samples_smc, lw=lw, label='SMC-ABC')
    ax.loglog(kl_mdn_prior, n_sims_mdn_prior, 'o', ms=8, label='MDN with prior')
    ax.loglog(kl_prior_prop, n_sims_prior_prop, 'o', ms=8, label='Proposal prior')
    ax.loglog(kl_mdn_prop, n_sims_mdn_prop, 'o', ms=8, label='MDN with prop.')
    ax.set_xlabel('KL divergence', labelpad=-1.0)
    ax.set_ylabel('\# simulations (per effective sample for ABC)')
    ax.set_xlim([10**-2, 10**4])
    ax.legend(loc='upper right', columnspacing=0.3, handletextpad=0.4, labelspacing=0.3, borderaxespad=0.3, numpoints=1, handlelength=1.0, fontsize=fontsize)
    fig.subplots_adjust(bottom=0.11)
    if save: fig.savefig(savepath + 'sims_vs_kl.pdf')

    plt.show(block=False)
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号