j = 0 while True: # while j < 10: import time for i, symcfg in enumerate(symconfigs): key = symcfg.prefix line = symcfg.readline("t_gibbs") if not line: break t, gibbs_P = read_t_gibbs(line) prob_Q = symcfg.prob_Q kl[key].append(KLd(gibbs_P, prob_Q)) bv.cmp_graph(gibbs_P, prob_Q, ax=axis[i * 2], label=key + str(j)) printKL(arange(t), kl[key], ax=axis[i * 2 + 1]) plt.draw() # plt.show() fname = "_".join([symcfg.prefix for symcfg in symconfigs]) plt.savefig("/home/shiogai/dir-png/%s_%d.png" % (fname, j)) j += 1 if not line: for symcfg in enumerate(symconfigs): symcfg.close() break plt.show()
fig = plt.figure() axis = [fig.add_subplot(411), fig.add_subplot(412), fig.add_subplot(413), fig.add_subplot(414),] axis[2].set_xlim(-1,16) kl_result = [] for line in open(files['mat'],"r"): import time t, mat = read_t_mat(line) L = array(mat, dtype=float) prob_P = [boltzmann_distribution(v,L,all_v) for v in all_v] ene_result = map(lambda v : energy(v,L), all_v) kl = KLd(prob_P, prob_Q) kl_result.append(kl) for i,v in enumerate(all_v): print "v[%d]="%(i),v for i,ene in enumerate(ene_result): print "E%d=%8.4f"%(i,ene), print "kl=%8.4f"%(kl) hinton_sub (L, ax = axis[0]) bv.cmp_energy(ene_result, ax = axis[1]) bv.print_KL (arange(t), kl_result, ax = axis[2]) bv.cmp_graph(prob_P, prob_Q, ax = axis[3]) plt.draw() plt.show()
print "all_v=",all_v #assert False plt.ion() fig = plt.figure() axis = [fig.add_subplot(211), fig.add_subplot(212),] kl_result = [] for v in all_v: print "v = ", v for line in open(files['t_gibbs'],"r"): import time t, gibbs_P = read_t_gibbs(line) kl = KLd(gibbs_P, prob_Q) kl_result.append(kl) print "t = ",t, for i,p in enumerate(gibbs_P): print "p(x=%d)=%4.3f"%(i,p), print "kl=%4.3f"%(kl) bv.cmp_graph(gibbs_P,prob_Q,ax=axis[0]) bv.print_KL (arange(t), kl_result, ax = axis[1]) plt.draw() plt.show()
fig.add_subplot(224),] kl1 = [] kl2 = [] for v in all_v: print "v = ", v fr1 = open(files['mat'],"r") fr2 = open(files['t_gibbs'],"r") while True: import time line1 = fr1.readline() line2 = fr2.readline() t1, mat = read_t_mat(line1) t2, gibbs_P = read_t_gibbs(line2) L=array(mat,dtype=float) boltz_P = [boltzmann_distribution(v,L,all_v) for v in all_v] kl1.append( KLd(boltz_P, prob_Q) ) kl2.append( KLd(gibbs_P, prob_Q) ) bv.cmp_graph(boltz_P, prob_Q, ax=axis[0]) bv.cmp_graph(gibbs_P, prob_Q, ax=axis[2]) bv.print_KL(arange(t1), kl1, ax=axis[1]) bv.print_KL(arange(t2), kl2, ax=axis[3]) plt.draw() plt.show()