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]
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
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