コード例 #1
0
 def __init__(self, header="rate", knots=10, length=1000, kernel=False):
     self.header = header
     self.knots = knots
     self.length = length
     if type(kernel) == bool:
         self.kernel = cs.create_splines_linspace(self.length, self.knots,
                                                  0)
     else:
         self.kernel = kernel
     if type(self.kernel) == str:
         self.width = eval(self.kernel).shape[1]
     else:
         self.width = self.kernel.shape[1]
     if type(header) == str or type(header) == dict:
         self.loads(header)
     if type(self.kernel) == str:
         self.kernel = self.kernel.replace("np.ndarray", "np.array")
	def __init__(self,config):
		self.sim_name = "ni.model.net_sim"
		self.config = config
		self.frate= np.random.rand(self.config.Nneur)*0.2+0.4
		self.frate=-(1/self.config.frate_mu)*np.log(1-self.frate)+1
		self.frate_function = np.tile(self.frate,self.config.prior_epoch+self.config.Ntime)
		if self.config.rate_function:
			rate_splines = cs.create_splines_linspace(self.config.prior_epoch+self.config.Ntime, 10, 0)
			rate_function = np.matrix(np.random.rand(self.config.Nneur, rate_splines.shape[1])) * np.matrix(rate_splines.conj().transpose())
			self.frate_function = rate_function[:, :(self.config.prior_epoch+self.config.Ntime)] 
			self.frate_function = self.frate_function / (np.mean(self.frate_function))
			self.frate_function =  np.array([np.array(self.frate_function[i,:].flatten() * self.frate[i]) for i in xrange(self.config.Nneur)])
			self.frate_function =  np.reshape(self.frate_function,(self.config.Nneur,self.config.prior_epoch+self.config.Ntime)).transpose()
		self.logit_lam0=np.log(self.frate/1000 /(1-self.frate/1000))
		# now make coupling we will use a simple 
		# exponential decay function
		t = np.array(range(0,self.config.Nhist))
		# self histories
		self.Jself= np.zeros((self.config.Nneur,self.config.Nhist))
		for i in range(1,self.config.Nneur):
			self.Jself[i,] = 3*np.random.rand()*(np.exp(-t/20) -5*np.exp(-t/2))
			self.Jself[i,1]=-10
		# Interaction Matrix
		self.Jall=np.zeros((self.config.Nneur,self.config.Nneur,self.config.Nhist))
		J_beta=np.zeros((self.config.Nneur,self.config.Nneur))
		tau_beta=np.zeros((self.config.Nneur,self.config.Nneur))
		#A=full(sprand(Nneur,Nneur,sparse_coeff)) == Nneur*Nneur*sparse_coeff non-zero entries
		A_entries = np.random.rand(self.config.Nneur*self.config.Nneur*self.config.sparse_coeff)
		A = np.zeros((self.config.Nneur,self.config.Nneur))
		for a in A_entries:
			A[np.random.randint(self.config.Nneur),np.random.randint(self.config.Nneur)] = a
		J_beta = (A-0.5)*0.5
		tau_beta[np.nonzero(A)] = np.random.rand(tau_beta[np.nonzero(A)].shape[0])*10+5
		for i in range(0,self.config.Nneur):
			for j in range(0,self.config.Nneur):
				self.Jall[i,j,] = J_beta[i,j]*np.exp(np.array(range(1,self.config.Nhist+1))*-1/(self.config.eps+tau_beta[i,j]))
		for i in range(0,self.config.Nneur):
			self.Jall[i,i,] = np.zeros((1,1,self.config.Nhist))
		self.results = []
コード例 #3
0
 def addLinSpline(self, knots, header, length=0):
     if length == 0:
         self.add(cs.create_splines_linspace(self.length - 1, knots, 0),
                  header)
     else:
         self.add(cs.create_splines_linspace(length - 1, knots, 0), header)