Exemple #1
0
def main():

    parser = argparse.ArgumentParser(description='')
    parser.add_argument('--MC','-Q', help='Quantum training file',   nargs='+')
    parser.add_argument('--ED','-C', help='Classical training file', nargs='+')
    parser.add_argument('--clamped', help='Clamped simulation', default=False, action='store_true')
    args = vars(parser.parse_args())


    if 'MC' in args.keys():
        skip = 3 # skip estimators we don't care about 
        for filename in args['MC']:
            fparams = ssexyhelp.getReduceParamMap(filename)
            data    = np.loadtxt(filename)
            headers = Hfile.getHeaders(filename)
            if not(args['clamped']): (first, last) = (headers.index('X0'),  headers.index('sX0'))
            else:                    (first, last) = (headers.index('sX0'), len(headers))
            aves    = np.zeros(last-first)
            stds    = np.zeros(last-first)
            for i, c in enumerate(range(first, last)):
                cdata   = data[~np.isnan(data[:,c]),c]
                aves[i] = np.mean(cdata)
                stds[i] = np.amax(MCstat.bin(cdata[np.newaxis].T))
            
    if 'ED' in args.keys():
        for filename in args['ED']:
            fparams = ssexyhelp.getReduceParamMap(filename)
            ED    = np.loadtxt(filename)
    
    print ED
    print aves
    print stds
    colors = ["#66CAAE", "#CF6BDD", "#E27844", "#7ACF57", "#92A1D6", "#E17597", "#C1B546"]


    fig = pl.figure(1, figsize=(10,5))
    pl.connect('key_press_event',kevent.press)
    ax  = pl.subplot(111)
    ax.plot((ED-aves)/stds, color=colors[0])#, lw=2, m='o', ls='')#, label=r'$data$')
    
    pl.ylabel(r'$(ED-MC)/\Delta_{MC}$')
    pl.xlabel(r'$Averages$')
    lgd = pl.legend(loc = 'best')
    
    lheaders = []
    for head in Hfile.getHeaders(args['ED'][0]):
        lheaders += [r'$%s$' %head]
    pl.xticks(range(len(lheaders)), lheaders, rotation='vertical')

    #lgd.draggable(state=True)
    #lgd.draw_frame(False)
    pl.tight_layout()
    pl.show()
Exemple #2
0
def main(): 

    parser = argparse.ArgumentParser(description='')
    parser.add_argument('filenames', help='Training output files', nargs='+')

    args = parser.parse_args()
    filenames = args.filenames
    specs = []
    for i,filen in enumerate(filenames):
        fparams = ssexyhelp.getReduceParamMap(filen)
        fparams['filename'] = filen
        fparams['index']    = i
        specs += [fparams]

    specs = getInfoSpecifiers(specs)
    specs = augmentMissingSpecifiers(specs)
    
    for spec in specs:
        filename = spec.pop('filename')
        
        # Read off the list of headers
        # Load and check the data
        fdata = np.loadtxt(filename) 
        fdata = cleanData(fdata.view())
       
        headers = getHeaders(filename)

        # Augment the data set with new quantities
        QE, CE = computeEnergies(headers, fdata)
        nheaders += ['E_Q', 'E_C']
        fdata = np.hstack([fdata, QE, CE])
        spec['data'] = fdata.view(dtype= zip(nheaders, [str(fdata.dtype)]*len(nheaders))).copy()
Exemple #3
0
def main(): 

    # setup the command line parser options 
    parser = argparse.ArgumentParser(description='')
    parser.add_argument('filenames', help='Training output files', nargs='+')

    args = parser.parse_args()
    filenames = args.filenames
    pl.connect('key_press_event',kevent.press)

    ddata = {}
    for filename in filenames:
        rdata    = np.loadtxt(filename) 
        if len(rdata.shape)> 1: pindex = (-1,0)
        else:                   pindex = (0)
        
        #(nr, nc) = rdata.shape 

        fparams = ssexyhelp.getReduceParamMap(filename)
        (alpha, Ns, beta, delta) = (fparams['alpha'], fparams['N'] , fparams['b'], fparams['delta'])
        seed = int(findKbV(fparams, ''))
        if not(delta in ddata.keys()): ddata[delta] = np.zeros(30) 
        else:                          ddata[delta][seed] = rdata[pindex]

    fig = pl.figure(1, figsize=(13,6))
    ax  = pl.subplot(111)
    colors = ["#66CAAE", "#CF6BDD", "#E27844", "#7ACF57", "#92A1D6", "#E17597", "#C1B546",'b']

    i = 0
    for delta, data in ddata.iteritems():
        ax.plot(range(len(data)), data,  
                color=colors[i], lw=3, ls='-',
                label = r'$\Delta = %0.2f$' %delta)
        i += 1

    pl.xlabel('Instance')
    pl.ylabel('LL')
    pl.legend(loc = 'best')
    pl.title(r'$\beta=%0.2f \, \alpha=%0.2f $' %(beta, alpha), fontsize = 20)
    pl.tight_layout()
    pl.show()
Exemple #4
0
def main(): 
    parser = argparse.ArgumentParser(description='')
    parser.add_argument('--quant','-Q', help='Quantum training file',   nargs='+')
    parser.add_argument('--class','-C', help='Classical training file', nargs='+')

    args = vars(parser.parse_args())

    colors = ["#66CAAE", "#CF6BDD", "#E27844", "#7ACF57", "#92A1D6", "#E17597", "#C1B546"]
    fig = pl.figure(1, figsize=(10,5))
    pl.connect('key_press_event',kevent.press)
    ax  = pl.subplot(111)

    
    # ----------------------------------------------------------------------
    if 'class' in args.keys():
        cdata = np.zeros((5, len(args['class'])//5))
        ssizes = []
        i = -1
        for filename in args['class']:
            data = Hfile.cleanData(np.loadtxt(filename))
            
            cKL             = np.amin(data[:,1])
            fparams         = ssexyhelp.getReduceParamMap(filename)
            (bsize, seed)   = (int(fparams['ssise']), int(filename[:-4].split('_')[-1]))
            
            if not(bsize in ssizes): 
                i += 1
                ssizes += [bsize]
            cdata[seed, i] = cKL  
        
        cKLs = np.sum(cdata, axis = 0)
        ax.plot(ssizes, cKLs, color=colors[1], lw=1, ls='-', label=r'$classical$')

    # ----------------------------------------------------------------------
    if 'quant' in args.keys():
        qdata = np.zeros((5, len(args['quant'])//5))
        ssizes = []
        i = -1
        for filename in args['quant']:
            data = cleanData(np.loadtxt(filename))
            
            qKL             = np.amin(data[:,1])
            fparams         = ssexyhelp.getReduceParamMap(filename)
            (bsize, seed)   = (int(fparams['ssise']), int(filename[:-4].split('_')[-1]))
            
            if not(bsize in ssizes): 
                i += 1
                ssizes += [bsize]
            qdata[seed, i] = qKL  

        qKLs = np.sum(qdata, axis = 0)
        ax.plot(ssizes, qKLs, color=colors[2], lw=1, ls='-', label=r'$quantum$')


    
    pl.xlabel(r'$Training \, sample \, size$')
    pl.ylabel(r'$KL-divergence$')
    lgd = pl.legend(loc = 'best')
    lgd.draggable(state=True)
    lgd.draw_frame(False)
    pl.tight_layout()
    pl.show()
Exemple #5
0
def main(): 
    parser = argparse.ArgumentParser(description='')
    parser.add_argument('--quant',  '-Q',  help='Quantum training file',   nargs='+')
    parser.add_argument('--squant1', '-S', help='Fixed delta quantum training file',   nargs='+')
    parser.add_argument('--aquant1',  help='Approximate quantum training file',   nargs='+')
    parser.add_argument('--squant2', help='Fixed delta quantum training file',   nargs='+')
    parser.add_argument('--squant3', help='Fixed delta quantum training file',   nargs='+')
    parser.add_argument('--aquant2',  help='Approximate quantum training file',   nargs='+')
    parser.add_argument('--aquant3',  help='Approximate quantum training file',   nargs='+')
    parser.add_argument('--class','-C', help='Classical training file', nargs='+')

    args = vars(parser.parse_args())

    colors = ["#66CAAE", "#CF6BDD", "#E27844", "#7ACF57", "#92A1D6", "#E17597", "#C1B546"]
    fig = pl.figure(1, figsize=(10,5))
    pl.connect('key_press_event',kevent.press)
    ax  = pl.subplot(111)

    
    # ----------------------------------------------------------------------
    if 'class' in args.keys():
        cdata = {}
        i = -1
        for filename in args['class']:
            data = Hfile.cleanData(np.loadtxt(filename))
            
            LL      = data[-1,0]
            fparams = ssexyhelp.getReduceParamMap(filename)
            N       = int(fparams['N'])
            
            if not(N in cdata.keys()): cdata[N] = []
            cdata[N] += [LL]
        
        (Ns, vLLs, eLLs) = (cdata.keys(), [], [])
        Ns.sort()
        for N in Ns:
            vLLs += [np.mean(np.array(cdata[N]))]
            eLLs += [np.std(np.array(cdata[N]))/float(np.sqrt(len(cdata[N])))]
        
        cLLs = unumpy.uarray((np.array(vLLs), np.array(eLLs)))
        #ax.errorbar(Ns, unumpy.nominal_values(cLLs), unumpy.std_devs(cLLs), color=colors[1], lw=1, marker='o', ms=4, ls='', label=r'$classical$')

    # ----------------------------------------------------------------------
    if 'quant' in args.keys():
        qdata = {}
        i = -1
        for filename in args['quant']:
            data = Hfile.cleanData(np.loadtxt(filename))
            
            LL      = data[-1,0]
            fparams = ssexyhelp.getReduceParamMap(filename)
            N       = int(fparams['N'])
            
            if not(N in qdata.keys()): qdata[N] = []
            qdata[N] += [LL]

        (Ns, vLLs, eLLs) = (qdata.keys(), [], [])
        Ns.sort()
        for N in Ns:
            vLLs += [np.mean(np.array(qdata[N]))]
            eLLs += [np.std(np.array(qdata[N]))/float(np.sqrt(len(qdata[N])))]

        eqLLs = cLLs - unumpy.uarray((np.array(vLLs), np.array(eLLs)))
        ax.errorbar(Ns, unumpy.nominal_values(eqLLs), unumpy.std_devs(eqLLs), color=colors[0], lw=1, ls=':', marker='s', ms=4, label=r'$exact \, quantum$')
        #ax.plot(Ns, unumpy.nominal_values(eqLLs), color=colors[2], lw=1, ls='-', marker='s', ms=4, label=r'$exact \, quantum$')


    # ----------------------------------------------------------------------
    if 'aquant1' in args.keys():
        aqdata = {}
        i = -1
        for filename in args['aquant1']:
            data = Hfile.cleanData(np.loadtxt(filename))
            
            LL      = data[-1,0]
            fparams = ssexyhelp.getReduceParamMap(filename)
            N       = int(fparams['N'])
            
            if not(N in aqdata.keys()): aqdata[N] = []
            aqdata[N] += [LL]

        (Ns, vLLs, eLLs) = (aqdata.keys(), [], [])
        Ns.sort()
        for N in Ns:
            vLLs += [np.mean(np.array(aqdata[N]))]
            eLLs += [np.std(np.array(aqdata[N]))/float(np.sqrt(len(aqdata[N])))]
        
        aqLLs = cLLs - unumpy.uarray((np.array(vLLs), np.array(eLLs)))
        ax.errorbar(Ns, unumpy.nominal_values(aqLLs), unumpy.std_devs(aqLLs), color=colors[1], lw=1, ls='-', marker='p', ms=4, label=r'$appr. \,quantum \, \Delta=1$')
        #ax.plot(Ns, unumpy.nominal_values(aqLLs), color=colors[3], lw=1, ls='-', marker='p', ms=4, label=r'$appr. \,quantum \, \Delta=2$')

    # ----------------------------------------------------------------------
    if 'squant1' in args.keys():
        qdata = {}
        i = -1
        for filename in args['squant1']:
            print filename
            data = Hfile.cleanData(np.loadtxt(filename))
            
            LL      = data[-1,0]
            fparams = ssexyhelp.getReduceParamMap(filename)
            N       = int(fparams['N'])
            
            if not(N in qdata.keys()): qdata[N] = []
            qdata[N] += [LL]

        (Ns, vLLs, eLLs) = (qdata.keys(), [], [])
        Ns.sort()
        for N in Ns:
            vLLs += [np.mean(np.array(qdata[N]))]

            eLLs += [np.std(np.array(qdata[N]))/float(np.sqrt(len(qdata[N])))]

        eqLLs = cLLs[:-1] - unumpy.uarray((np.array(vLLs), np.array(eLLs)))
        ax.errorbar(Ns, unumpy.nominal_values(eqLLs), unumpy.std_devs(eqLLs), color=colors[1], lw=1, ls='--', marker='s', ms=4, label=r'$fixed \, quantum \, \Delta=1$')
        #ax.plot(Ns, unumpy.nominal_values(eqLLs), color=colors[5], lw=1, ls='-', marker='s', ms=4, label=r'$fixed \, quantum \, \Delta =1$')

 
    # ----------------------------------------------------------------------
    if 'aquant2' in args.keys():
        aqdata = {}
        i = -1
        for filename in args['aquant2']:
            data = Hfile.cleanData(np.loadtxt(filename))
            
            LL      = data[-1,0]
            fparams = ssexyhelp.getReduceParamMap(filename)
            N       = int(fparams['N'])
            
            if not(N in aqdata.keys()): aqdata[N] = []
            aqdata[N] += [LL]

        (Ns, vLLs, eLLs) = (aqdata.keys(), [], [])
        Ns.sort()
        for N in Ns:
            vLLs += [np.mean(np.array(aqdata[N]))]
            eLLs += [np.std(np.array(aqdata[N]))/float(np.sqrt(len(aqdata[N])))]
        
        aqLLs = cLLs - unumpy.uarray((np.array(vLLs), np.array(eLLs)))
        ax.errorbar(Ns, unumpy.nominal_values(aqLLs), unumpy.std_devs(aqLLs), color=colors[2], lw=1, ls='-', marker='p', ms=4, label=r'$appr. \,quantum \, \Delta=2$')
        #ax.plot(Ns, unumpy.nominal_values(aqLLs), color=colors[3], lw=1, ls='-', marker='p', ms=4, label=r'$appr. \,quantum \, \Delta=2$')

    # ----------------------------------------------------------------------
    if 'squant2' in args.keys():
        qdata = {}
        i = -1
        for filename in args['squant2']:
            data = Hfile.cleanData(np.loadtxt(filename))
            
            LL      = data[-1,0]
            fparams = ssexyhelp.getReduceParamMap(filename)
            N       = int(fparams['N'])
            
            if not(N in qdata.keys()): qdata[N] = []
            qdata[N] += [LL]

        (Ns, vLLs, eLLs) = (qdata.keys(), [], [])
        Ns.sort()
        for N in Ns:
            vLLs += [np.mean(np.array(qdata[N]))]

            eLLs += [np.std(np.array(qdata[N]))/float(np.sqrt(len(qdata[N])))]

        eqLLs = cLLs[:-1] - unumpy.uarray((np.array(vLLs), np.array(eLLs)))
        ax.errorbar(Ns, unumpy.nominal_values(eqLLs), unumpy.std_devs(eqLLs), color=colors[2], lw=1, ls='--', marker='s', ms=4, label=r'$fixed \, quantum \, \Delta=3$')
        #ax.plot(Ns, unumpy.nominal_values(eqLLs), color=colors[5], lw=1, ls='-', marker='s', ms=4, label=r'$fixed \, quantum \, \Delta =1$')

 
    # ----------------------------------------------------------------------
    if 'aquant3' in args.keys():
        aqdata = {}
        i = -1
        for filename in args['aquant3']:
            data = Hfile.cleanData(np.loadtxt(filename))
            
            LL      = data[-1,0]
            fparams = ssexyhelp.getReduceParamMap(filename)
            N       = int(fparams['N'])
            
            if not(N in aqdata.keys()): aqdata[N] = []
            aqdata[N] += [LL]

        (Ns, vLLs, eLLs) = (aqdata.keys(), [], [])
        Ns.sort()
        for N in Ns:
            vLLs += [np.mean(np.array(aqdata[N]))]
            eLLs += [np.std(np.array(aqdata[N]))/float(np.sqrt(len(aqdata[N])))]
        
        aqLLs = cLLs - unumpy.uarray((np.array(vLLs), np.array(eLLs)))
        ax.errorbar(Ns, unumpy.nominal_values(aqLLs), unumpy.std_devs(aqLLs), color=colors[3], lw=1, ls='-', marker='p', ms=4, label=r'$appr. \,quantum \, \Delta=3$')
        #ax.plot(Ns, unumpy.nominal_values(aqLLs), color=colors[3], lw=1, ls='-', marker='p', ms=4, label=r'$appr. \,quantum \, \Delta=2$')

    # ----------------------------------------------------------------------
    if 'squant3' in args.keys():
        qdata = {}
        i = -1
        for filename in args['squant3']:
            data = Hfile.cleanData(np.loadtxt(filename))
            
            LL      = data[-1,0]
            fparams = ssexyhelp.getReduceParamMap(filename)
            N       = int(fparams['N'])
            
            if not(N in qdata.keys()): qdata[N] = []
            qdata[N] += [LL]

        (Ns, vLLs, eLLs) = (qdata.keys(), [], [])
        Ns.sort()
        for N in Ns:
            vLLs += [np.mean(np.array(qdata[N]))]

            eLLs += [np.std(np.array(qdata[N]))/float(np.sqrt(len(qdata[N])))]

        eqLLs = cLLs[:-1] - unumpy.uarray((np.array(vLLs), np.array(eLLs)))
        ax.errorbar(Ns, unumpy.nominal_values(eqLLs), unumpy.std_devs(eqLLs), color=colors[3], lw=1, ls='--', marker='s', ms=4, label=r'$fixed \, quantum \, \Delta=3$',capthick=2.0, capsize=3.0, markersize='5')
        #ax.plot(Ns, unumpy.nominal_values(eqLLs), color=colors[5], lw=1, ls='-', marker='s', ms=4, label=r'$fixed \, quantum \, \Delta =1$')

    
    pl.xlabel(r'$System \, size$')
    pl.ylabel(r'$\Delta LL$')
    ax.set_xlim([3,11])
    ax.set_yscale('log')
    lgd = pl.legend(loc = 'best')
    lgd.draggable(state=True)
    lgd.draw_frame(False)
    pl.tight_layout()
    pl.show()
Exemple #6
0
def main(): 

    # setup the command line parser options 
    parser = argparse.ArgumentParser(description='')
    parser.add_argument('filenames', help='Training output files', nargs='+')

    args = parser.parse_args()
    filenames = args.filenames
    pl.connect('key_press_event',kevent.press)

    ddata = {}
    for filename in filenames:
        rdata    = np.loadtxt(filename) 
        if len(rdata.shape)> 1: pindex = (-1,0)
        else:                   pindex = (0)
    
        inFile = open(filename,'r');
        inLine = inFile.readlines();
        headers = inLine[0].split('   ')
        headers.pop(0)
        header = []
        for head in headers:
            if head!='': header += [head]
        inFile.close()

        split1 = header.index(' <Z0>')
        split2 = header.index(' <X0>')
        split3 = header.index(' <ZZ(0, 1)>')

        fparams = ssexyhelp.getReduceParamMap(filename)
        #(alpha, Ns, beta, mode) = (fparams['alpha'], fparams['N'] , fparams['b'], fparams['mode'])
        (mode) = (fparams['mode']+str(fparams['modes'])+str(fparams['iw']))
       
        pindex = len(rdata[:, 0])
        if np.isnan(rdata[-1,0]) or rdata[-2,0]<rdata[-1,0]: 
           print "Weird LL: ", filename
           pindex += -1
        
        if not (mode in ddata.keys()): 
           ddata[mode] = {} 

        #seed = int(findKbV(fparams, ''))
        seed = int(fparams['hseed'])
        #seed = int(findKbV(fparams, ''))
        #print rdata[:pindex, 0]
        #print ddata[mode][seed, 0, :]
        #print 'pindex', pindex,rdata[: pindex, 1:split1]
        Es = rdata[: pindex, 1:split1]*rdata[:pindex, split1:]
        split2 -= split1
        split3 -= split1
        split1  = 0
        ddata[mode][seed] = {}
        ddata[mode][seed][0] = rdata[:pindex,0]
        ddata[mode][seed][1] = np.sum(Es[:, split1:split2], axis=1)\
                        + np.sum(Es[:, split3:], axis=1)
        ddata[mode][seed][2] = np.sum(Es[:, split2:split3], axis=1) 

        
        #if not(delta in ddata.keys()): ddata[delta] = np.zeros(30) 
        #else:                          ddata[delta][seed] = rdata[pindex]

    fig = pl.figure(1, figsize=(13,6))
    ax  = pl.subplot(111)
    colors = ["#66CAAE", "#CF6BDD", "#E27844", "#7ACF57", "#92A1D6", "#E17597", "#C1B546",'b']

    i = 0
    print ddata
    for label, data in ddata.iteritems():
        if label == 'quant': col = colors[0] 
        else:                col = colors[1] 
        for seed,sdata in data.iteritems():
            ax.plot(sdata[1][0], sdata[2][0], marker='.')
            ax.plot(sdata[1], sdata[2],
                    ls = ['-','--',':'][(seed+2)%3])

                    #color=col, lw=3, ls='-')
                    #, label = r'$mode = %s$' %label)

    pl.xlabel(r'$E_C$')
    pl.ylabel(r'$E_Q$')
    pl.legend(loc = 'best')
    #pl.title(r'$\beta=%0.2f \, \alpha=%0.2f $' %(beta, alpha), fontsize = 20)
    pl.tight_layout()
    pl.show()