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
예제 #4
0
 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)