In [ ]:
#Visualize Samples from the model
import sys,os,glob
sys.path.append('../../')
import numpy as np
%matplotlib inline
import matplotlib.pyplot as plt
import matplotlib as mpl
mpl.rcParams['lines.linewidth']=4
mpl.rcParams['lines.markersize']=3
mpl.rcParams['text.usetex']=True
mpl.rcParams['text.latex.unicode']=True
mpl.rcParams['font.family'] = 'serif' 
mpl.rcParams['font.serif'] = 'Times New Roman'
mpl.rcParams['text.latex.preamble']= ['\\usepackage{amsfonts}','\\usepackage{amsmath}']
mpl.rcParams['font.size'] = 30
mpl.rcParams['axes.labelsize']=30
mpl.rcParams['legend.fontsize']=30
#http://stackoverflow.com/questions/22408237/named-colors-in-matplotlib
from utils.misc import getConfigFile, readPickle, loadHDF5, getUniqueIDFromParams
from optvaeutils.viz import getName

In [ ]:
#DSET = 'rcv2'
namemap_rcv2   = {}
namemap_wiki   = {}
namemap_rcv2['pl-0-finopt'] = '1-M100'# 'p1-$\\psi_{\\text{opt.}}$'
namemap_rcv2['pl-0-none'] = '1-M1' #'p1'
namemap_rcv2['pl-2-none'] =  '3-M1'#'p3'
namemap_rcv2['pl-2-finopt'] = '3-M100'# 'p3-$\\psi_{\\text{opt.}}$'

namemap_wiki['pl-0-finopt'] = '1-M100'# 'p1-$\\psi_{\\text{opt.}}$'
namemap_wiki['pl-0-none'] = '1-M1' #'p1'
namemap_wiki['pl-2-none'] =  '3-M1'#'p3'
namemap_wiki['pl-2-finopt'] = '3-M100'# 'p3-$\\psi_{\\text{opt.}}$'

colorFinal = {}
colorFinal['pl-0-none']    = 'r'
colorFinal['pl-0-finopt']  = 'b'
colorFinal['pl-2-none']    = 'g'
colorFinal['pl-2-finopt']  = 'k'
markerFinal = {}
markerFinal['pl-0-none']   =  '>'
markerFinal['pl-0-finopt']  =  '<'
markerFinal['pl-2-none']   =  'o'
markerFinal['pl-2-finopt']  =  's'


results = {}
results['rcv2'] = {}
results['wikicorp'] = {}
for f in glob.glob('../../expt/evaluateJac/*.h5'):
    dataset = f.split('-')[0].split('/')[-1]
    setup   = f.split('pl-')[1].split('-jac')[0]
    dd = loadHDF5(f)
    results[dataset][setup]  = dd['svals']
    print dataset, setup

In [ ]:


In [ ]:


In [ ]:
fig,axlist     = plt.subplots(1,2,figsize=(10,5.5))  
for idx, dataset in enumerate(['wikicorp','rcv2']):
    ax         = axlist.ravel()[idx]
    #if dataset=='wikicorp':
    #    ax.set_title('Wikipedia')
    #else:
    #    ax.set_title('RCV2')
    for setup in ['0-none','0-finopt','2-none','2-finopt']:
        if'rcv2' in dataset:
            name = namemap_rcv2['pl-'+setup]
        else:
            name = namemap_rcv2['pl-'+setup]
        MARKER = markerFinal['pl-'+setup]
        COLOR  = colorFinal['pl-'+setup]
        svals  = results[dataset][setup]
        Y = np.sort(np.log(svals))[::-1]
        X = np.arange(0,Y.shape[0])
        #ax.plot(X,Y,'-',marker=MARKER,alpha=0.8,color=COLOR,ms=12,lw=1,label = name)
        ax.plot(X[::5],Y[::5],'-',marker=MARKER,alpha=0.8,color=COLOR,ms=12,lw=1,label = name)
        if 'wikicorp' in dataset:
            ax.set_ylim([-3,6])
        else:
            ax.set_ylim([-3,6])
        ax.set_xticks(X[::25].tolist()+[100])
fname = 'javex_svd.pdf'
#plt.legend(loc='upper center', bbox_to_anchor=(-0.3, 1.1),ncol=2,frameon=True,columnspacing=0.1, markerscale=2)
#plt.legend(loc='upper center', bbox_to_anchor=(0.6, 1.),ncol=2,frameon=False,columnspacing=0.1, markerscale=2)

axlist[0].set_ylabel('Log singular values\n of $\\nabla_z\\log p(x|z)$')
#fig.text(0.5, 0.01, 'Dimensions of $z$', ha='center')
fig.text(0.35, 0.2, 'Wikipedia', ha='center')
fig.text(0.8, 0.2, 'RCV1', ha='center')
plt.tight_layout()
plt.savefig(fname, bbox_inches='tight')

In [ ]: