def callback(iters, current, env): print 'Callback: ', iters # get all traces env.updategui = False traces = env.evaluate_policy(current) env.updategui = True pickle.dump(traces, open('traces{0}.pck'.format(iters), 'w'), pickle.HIGHEST_PROTOCOL) # measure task performance avg_reward = 0 for t in traces: avg_reward += sum([i[2] for i in t]) avg_reward = avg_reward / float(len(traces)) print 'Avg reward: ', avg_reward # find current embedding ematrix = np.zeros((512, 512)) for (i, t) in enumerate(traces): for (j, s) in enumerate(traces): ematrix[i, j] = edit_distance_vc([e[1] for e in t], [l[1] for l in s], (1.0, 1.0, 1.2)) pickle.dump(ematrix, open('ematrix{0}.pck'.format(iters), 'w'), pickle.HIGHEST_PROTOCOL) y, s, adj = isomap(ematrix) if len(y) < 512: # fallback to mds if more than 1 connected component print "More than 1 CC - Falling back to MDS" y, s = mds(ematrix) adj = None # plot stuff later because of pylab / pygame incompat on mac # save embedding image - multiple formats? #scatter(y[:,0],y[:,1], filename='scatter{0}.pdf'.format(iters)) # save scree plot #plot(s[:10], filename='scree{0}.pdf'.format(iters)) # procrustes error gt = env.coords_array() err = procrustes(gt, y) print "Procrustes ", err pickle.dump((iters, err, gt, avg_reward, current, y, s, adj), open('misc{0}.pck'.format(iters), 'w'), pickle.HIGHEST_PROTOCOL) env.save('iter{0}.png'.format(iters))
# ogw.set_heatmap(obs) # pdb.set_trace() # ogw.phi(0,0,sparse=False) pdb.set_trace() traces = ogw.evaluate_func_policy(ogw.perfect_policy) pickle.dump(traces, open("perf_pca_traces_center.pck", "w"), pickle.HIGHEST_PROTOCOL) traces = pickle.load(open("perf_pca_traces_center.pck")) from dtw import edit_distance_vc ematrix = np.zeros((512, 512)) for (i, t) in enumerate(traces): for (j, s) in enumerate(traces): ematrix[i, j] = edit_distance_vc([e[1] for e in t], [l[1] for l in s], (1.0, 1.0, 2.0)) # print ematrix pickle.dump(ematrix, open("ematrix4.pck", "w"), pickle.HIGHEST_PROTOCOL) ematrix = pickle.load(open('ematrix4.pck')) # from mds import mds # pdb.set_trace() # y,s = mds(ematrix) # #from utils import scatter # #scatter(y[:,0],y[:,1]) # import pylab # pylab.plot(y[:,0],y[:,1]) # pylab.savefig('test3.png') # ogw.background() # ogw.mainloop()
# s = np.zeros(ogw.nstates) # s[:ogw.nstates/2] = 10.0 # ogw.set_heatmap(obs) # pdb.set_trace() # ogw.phi(0,0,sparse=False) pdb.set_trace() traces = ogw.evaluate_func_policy(ogw.perfect_policy) pickle.dump(traces, open("perf_pca_traces_center.pck","w"),pickle.HIGHEST_PROTOCOL) traces = pickle.load(open("perf_pca_traces_center.pck")) from dtw import edit_distance_vc ematrix = np.zeros((512,512)) for (i,t) in enumerate(traces): for (j,s) in enumerate(traces): ematrix[i,j] = edit_distance_vc([e[1] for e in t], [l[1] for l in s], (1.0, 1.0, 2.0)) # print ematrix pickle.dump(ematrix, open("ematrix4.pck","w"), pickle.HIGHEST_PROTOCOL) ematrix = pickle.load(open('ematrix4.pck')) # from mds import mds # pdb.set_trace() # y,s = mds(ematrix) # #from utils import scatter # #scatter(y[:,0],y[:,1]) # import pylab # pylab.plot(y[:,0],y[:,1]) # pylab.savefig('test3.png') # ogw.background()
if r: sucesses.append(i) else: failures.append(i) # print sucesses # print failures # s = np.zeros(ogw.nstates) # for (l,i) in result.items(): # s[l] = i # ogw.set_heatmap(s) ogw.mainloop() if False: traces = pickle.load(open("perf_pca_traces_center.pck")) ematrix = np.zeros((512, 512)) for (i, t) in enumerate(traces): for (j, s) in enumerate(traces): ematrix[i, j] = edit_distance_vc([e[1] for e in t], [l[1] for l in s], (1.0, 1.0, 1.2)) pickle.dump(ematrix, open("ematrix.pck", "w"), pickle.HIGHEST_PROTOCOL) ematrix = pickle.load(open('ematrix.pck')) inscatter(isomap(ematrix))