예제 #1
0
def runPF(params):
	[alpha,phi] = params
	env_rng = np.random.mtrand.RandomState()
	
	#env = ge.GaussianEnv(gamma=gamma,eta=eta,zeta=zeta,x0=0.0,
    #                     y0=.0,L=1.0,N=1,order=1,sigma=0.1,
    #                     Lx=1.0,Ly=1.0,randomstate=env_rng)
	env = ge.BistableEnv(gamma=gamma,eta=eta,x0=x0,order=1,randomstate=env_rng)
	env.reset(np.array([0.0]))
	
	#code is the population of neurons, plastic poisson neurons	
	code_rng = np.random.mtrand.RandomState()
	code = pn.PoissonPlasticCode(A=alpha,phi=phi,tau=tau,
                                 thetas=np.arange(-3.0,3.0,0.15),
                                 dm=dm,randomstate=code_rng,alpha=alpha)
	
	# s is the stimulus, sps holds the spikes, rates the rates of each
    # neuron and particles give the position of the particles
	# weights gives the weights associated with each particle
	
	env_rng.seed(12345)
	code_rng.seed(67890)
	
	env.reset(np.array([0.0]))
	code.reset()
	
	[mmse,spikecount] = pf.mse_particle_filter(code,env,timewindow=timewindow,
                                               dt=dt,nparticles=nparticles,
                                               mode = 'Silent',testf = f)
	print "ping "+str(alpha)+" "+str(phi)+" "+str(mmse)+" "+str(spikecount)
	return [alpha,phi,mmse, spikecount]
예제 #2
0
def run_filters(args):

    i,j,dtheta,alpha = args
    print i,j

    dt = 0.001
    phi = 1.0
    zeta = 1.0
    eta = 1.0
    gamma = 1.0
    timewindow = 30000
    dm = 0.0
    tau = 1.0
    nparticles = 1000

    #env is the "environment", that is, the true process to which we don't have access

    env_rng = np.random.mtrand.RandomState()

    env = ge.GaussianEnv(gamma=gamma,eta=eta,zeta=zeta,x0=0.0,
                         y0=.0,L=1.0,N=1,order=1,sigma=0.1,
                         Lx=1.0,Ly=1.0,randomstate=env_rng)
    env.reset(np.array([0.0]))

    #code is the population of neurons, plastic poisson neurons

    code_rng = np.random.mtrand.RandomState()

    code = pn.PoissonPlasticCode(phi=phi,tau=tau,alpha=alpha,
                                 thetas=np.arange(-dtheta,1.1*dtheta,2*dtheta),
                                 dm=dm,randomstate=code_rng)

    
    env_rng.seed(12345)
    code_rng.seed(67890)
    env.reset(np.array([0.0]))
    code.reset()
    
    [densem,densevar,spsg,sg,dense_mse] = pf.gaussian_filter(code,env,timewindow=timewindow,dt=dt,
                                                            dense=True)
   
    env_rng.seed(12345)
    code_rng.seed(67890)
    env.reset(np.array([0.0]))
    code.reset()
    
    [sparsem,sparsevar,spsg,sg,sparse_mse] = pf.gaussian_filter(code,env,timewindow=timewindow,dt=dt,
                                                                dense=False)

    env_rng.seed(12345)
    code_rng.seed(67890)
    env.reset(np.array([0.0]))
    code.reset()
    
    [particle_mse,ws] = pf.mse_particle_filter(code, env, timewindow=timewindow,
                                                         dt=dt, nparticles=nparticles,
                                                         testf=(lambda x:x))
    return i,j,dense_mse,sparse_mse,particle_mse
예제 #3
0
def run_filters(arg):
    i,dtheta = arg
    print arg
    dt = 0.001
    phi = 1.0
    zeta = 1.0
    eta = 1.0
    gamma = 1.0
    alpha = 0.5
    timewindow = 200000
    dm = 0.0
    tau = 1.0
    nparticles = 500

    env_rng = np.random.mtrand.RandomState()

    env = ge.GaussianEnv(gamma=gamma,eta=eta,zeta=zeta,x0=0.0,
                         y0=.0,L=1.0,N=1,order=1,sigma=0.1,
                         Lx=1.0,Ly=1.0,randomstate=env_rng)
    env.reset(np.array([0.0]))

    #code is the population of neurons, plastic poisson neurons

    code_rng = np.random.mtrand.RandomState()
    
    code = pn.PoissonPlasticCode(A=alpha,phi=phi/2,tau=tau,
                                 thetas=np.arange(-20.0,20.0,dtheta),
                                 dm=dm,randomstate=code_rng)
    
    env_rng.seed(12345)
    code_rng.seed(67890)
    env.reset(np.array([0.0]))
    code.reset()
    
    [densem,densevar,spsg,sg,dense_mse] = pf.gaussian_filter(code,env,timewindow=timewindow,dt=dt,
                                                            dense=True)
    
    env_rng.seed(12345)
    code_rng.seed(67890)
    env.reset(np.array([0.0]))
    code.reset()
    
    [sparsem,sparsevar,spsg,sg,sparse_mse] = pf.gaussian_filter(code,env,timewindow=timewindow,dt=dt,
                                                                dense=False)
    
    env_rng.seed(12345)
    code_rng.seed(67890)
    env.reset(np.array([0.0]))
    code.reset()
    
    [msep,ws] = pf.mse_particle_filter(code, env, timewindow=timewindow,
                                                         dt=dt, nparticles=nparticles,
                                                         testf=(lambda x:x))

    return i,dense_mse,sparse_mse,msep