def radius_timing_test(d=2,radius=0.1,tests=[VectorTree]): from plastk.rand import uniform,seed from plastk.utils import time_call import time for e in range(3,20): for db_type in tests: print print "Testing",db_type db = db_type(vector_len=d) n = 2**e print "Adding",n,"data points....", for i in range(n): x = uniform(0,1,(d,)) db.add(x,None) print "done." print "Average search search time...", seed(0,0) start = time.clock() total_results = 0 for i in range(100): results,dists = db.find_in_radius(uniform(0,1,(d,)),radius) total_results += len(results) end = time.clock() print (end-start)/100 print "Average results size:", total_results/100.0
def k_nearest_timing_test(d=2,k=1,tests=[VectorTree]): from plastk.rand import uniform,seed from plastk.utils import time_call import time new_seed = time.time() for e in range(3,20): print '===================' for db_type in tests: print print "Testing",db_type db = db_type(vector_len=d) n = 2**e seed(int(new_seed),int(new_seed%1 * 1000000)) print "Adding",n,"data points....", total_add_time = 0.0 for i in range(n): x = uniform(0,1,(d,)) start = time.clock() db.add(x,None) end = time.clock() total_add_time += end-start print "done. Average add time = %4.3f ms." %((total_add_time/n)*1000) print "Average search search time...", seed(0,0) print '%6.3f ms'% (1000*time_call(100,lambda: db.k_nearest(uniform(0,1,(d,)),k)))
def ckpt_restore_state(self,filename): from plastk import pkl ckpt = pkl.load(filename) self.verbose("Restoring checkpoint state") for a in self.ckpt_attribs: self.verbose(a,' = ', ckpt[a]) setattr(self,a,ckpt[a]) rand.seed(*ckpt['rand_seed']) self.env.sim = self.agent.sim = self self.episode_data = NetCDFFile(self.episode_filename,'a') if self.step_vars: self.step_data = NetCDFFile(self.step_filename,'a') return ckpt
def setUp(self): rand.seed(0,0) self.data = [(rand.uniform(0,1,(self.dim,)),None) for i in range(self.N)] for x,y in self.data: self.db.add(x,y)
def setUp(self): rand.seed(0, 0) self.data = [(rand.uniform(0, 1, (self.dim, )), None) for i in range(self.N)] for x, y in self.data: self.db.add(x, y)