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()
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()
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()
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()
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()
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()