Esempio n. 1
0
                cpa_space.calc_T(pat,pts = src, mysign=1,out=transformed_gpu,
                               **params_flow_int)
                               
            toc = time.clock()

            print "time (keeps result in gpu)",(toc-tic)/M                           
            if M==1:
                print """
                Note that for running it only once, we pay some overhead --
                probably because of the addiitonal krnl for bdry checks.
                This levels out when we make many runs"""
                
                 

                               
            if not np.allclose(transformed_gpu.get(),transformed):
                raise ValueError
            transformed = transformed_gpu.get()
         
       
       
        if TF.plot: 
            v_dense.gpu2cpu()
            transformed.gpu2cpu()
            Visualize.simple(x_dense,v_dense,interval,src,transformed,subplot_layout=[2,2])
            
    
    if computer.has_good_gpu_card:
        raw_input('raw_input:')
        print "Bye now"
Esempio n. 2
0
                                 mysign=1,
                                 out=transformed_gpu,
                                 **params_flow_int)

            toc = time.clock()

            print "time (keeps result in gpu)", (toc - tic) / M
            if M == 1:
                print """
                Note that for running it only once, we pay some overhead --
                probably because of the addiitonal krnl for bdry checks.
                This levels out when we make many runs"""

            if not np.allclose(transformed_gpu.get(), transformed):
                raise ValueError
            transformed = transformed_gpu.get()

        if TF.plot:
            v_dense.gpu2cpu()
            transformed.gpu2cpu()
            Visualize.simple(x_dense,
                             v_dense,
                             interval,
                             src,
                             transformed,
                             subplot_layout=[2, 2])

    if computer.has_good_gpu_card:
        raw_input('raw_input:')
        print "Bye now"
def example(base=[5],
            scale_spatial=100,
            nLevels=2,
            zero_v_across_bdry=[1],
            use_local_basis=True):   
    nPtsDense = 10000   
    tw = TransformWrapper(nCols=100,
                          nLevels=nLevels,  
                          base=base,
                          scale_spatial=scale_spatial,
                          nPtsDense=nPtsDense,
                          zero_v_across_bdry=zero_v_across_bdry)
     
    print_iterable(tw.ms.L_cpa_space)

    seed=0
    np.random.seed(seed)    
               

    
    
    for level in range(tw.ms.nLevels):
        cpa_space = tw.ms.L_cpa_space[level]
        Avees = cpa_space.Avees
        velTess = cpa_space.zeros_velTess()
        
        if use_local_basis:
            if 0:
                tw.sample_gaussian_velTess(level,Avees,velTess,mu=None) 
                Avees*=0.001
                velTess*=0.001  
            else:
                
                if not zero_v_across_bdry[0]:
                    velTess[:]=10*np.random.standard_normal(velTess.shape)
                    cpa_space.velTess2Avees(velTess=velTess,Avees=Avees)
                else:
                    velTess[1:-1]=10*np.random.standard_normal(velTess[1:-1].shape)
                    cpa_space.velTess2Avees(velTess=velTess,Avees=Avees)
                    
            cpa_space.velTess2Avees(velTess=velTess,Avees=Avees)  
            
        else:
            theta= cpa_space.get_zeros_theta()
            tw.sample_gaussian(level,Avees,theta,mu=None)    
#            theta/=10             
            cpa_space.theta2Avees(theta=theta,Avees=Avees)  
        
        # This step is important and must be done 
        # before are trying to "use" the new values of 
        # the (vectorized) A's.            
        tw.update_pat_from_Avees(Avees,level) 
        
        pts_src = tw.x_dense        
            
        tw.calc_v(level=level,pts=pts_src,v=tw.v_dense)
        tw.v_dense.gpu2cpu()
            
        
        pts_fwd = CpuGpuArray.zeros_like(pts_src) # Create a buffer for the output      
        
        tw.calc_T_fwd(pts_src,pts_fwd,level=level)    
        pts_fwd.gpu2cpu()  

        pts_inv = CpuGpuArray.zeros_like(pts_src) # Create a buffer for the output
        tw.calc_T_inv(pts_src,pts_inv,level=level)    
        pts_inv.gpu2cpu()     
     
        plt.figure(level)
        plt.clf()   
        interval = pts_src.cpu # interval doesn't have to be pts_src.cpu
        Visualize.simple(tw.x_dense,tw.v_dense,interval,pts_src,
                         transformed_fwd=pts_fwd,transformed_inv=pts_inv,
                         cpa_space=cpa_space)
        
    return tw
Esempio n. 4
0
def example(base=[5],
            scale_spatial=100,
            nLevels=2,
            zero_v_across_bdry=[1],
            use_local_basis=True):
    nPtsDense = 10000
    tw = TransformWrapper(nCols=100,
                          nLevels=nLevels,
                          base=base,
                          scale_spatial=scale_spatial,
                          nPtsDense=nPtsDense,
                          zero_v_across_bdry=zero_v_across_bdry)

    print_iterable(tw.ms.L_cpa_space)

    seed = 0
    np.random.seed(seed)

    for level in range(tw.ms.nLevels):
        cpa_space = tw.ms.L_cpa_space[level]
        Avees = cpa_space.Avees
        velTess = cpa_space.zeros_velTess()

        if use_local_basis:
            if 0:
                tw.sample_gaussian_velTess(level, Avees, velTess, mu=None)
                Avees *= 0.001
                velTess *= 0.001
            else:

                if not zero_v_across_bdry[0]:
                    velTess[:] = 10 * np.random.standard_normal(velTess.shape)
                    cpa_space.velTess2Avees(velTess=velTess, Avees=Avees)
                else:
                    velTess[1:-1] = 10 * np.random.standard_normal(
                        velTess[1:-1].shape)
                    cpa_space.velTess2Avees(velTess=velTess, Avees=Avees)

            cpa_space.velTess2Avees(velTess=velTess, Avees=Avees)

        else:
            theta = cpa_space.get_zeros_theta()
            tw.sample_gaussian(level, Avees, theta, mu=None)
            #            theta/=10
            cpa_space.theta2Avees(theta=theta, Avees=Avees)

        # This step is important and must be done
        # before are trying to "use" the new values of
        # the (vectorized) A's.
        tw.update_pat_from_Avees(Avees, level)

        pts_src = tw.x_dense

        tw.calc_v(level=level, pts=pts_src, v=tw.v_dense)
        tw.v_dense.gpu2cpu()

        pts_fwd = CpuGpuArray.zeros_like(
            pts_src)  # Create a buffer for the output

        tw.calc_T_fwd(pts_src, pts_fwd, level=level)
        pts_fwd.gpu2cpu()

        pts_inv = CpuGpuArray.zeros_like(
            pts_src)  # Create a buffer for the output
        tw.calc_T_inv(pts_src, pts_inv, level=level)
        pts_inv.gpu2cpu()

        plt.figure(level)
        plt.clf()
        interval = pts_src.cpu  # interval doesn't have to be pts_src.cpu
        Visualize.simple(tw.x_dense,
                         tw.v_dense,
                         interval,
                         pts_src,
                         transformed_fwd=pts_fwd,
                         transformed_inv=pts_inv,
                         cpa_space=cpa_space)

    return tw