def __init__(self,N,rates,time_between_rates=1000,sequential=True): super(PoissonGroup,self).__init__(N,name='PoissonGroup') self.state=None if isinstance(rates,basestring): # filename self.rates=Remember(filename=rates) elif isinstance(rates,int) or isinstance(rates,float): self.rates=float(rates)*numpy.ones((1,N)) time_between_rates=-100 elif isinstance(rates,list): rates=numpy.array(rates) rates.shape=(len(rates),1) self.rates=rates*numpy.ones((len(rates),N)) else: self.rates=rates.reshape((numpy.prod(rates.shape)/N,N)) self.time_between_rates=time_between_rates self.sequential=sequential self.connection_groups_to=[] self.time_to_next_rate=0 self.which_rate=-1 self.rate=self.rates[0,:] self.N=N self.spikes=numpy.zeros(N,numpy.byte) self.old_spikes=numpy.zeros(N,numpy.byte) self.type=get_neuron_type(self) self.initialized=True
def __init__(self,qty,time_between_rates=1000, pics=['new_images12_dog.pics'], filter=[min_max_filter], filter_params=[{'min':0.0,'max':50.0}], rate_range=None): if isinstance(qty,list): total_qty=sum(qty) num_channels=len(qty) else: total_qty=qty qty=[qty] num_channels=1 if rate_range: for f in filter_params: f['min']=rate_range[0] f['max']=rate_range[1] if len(pics)!=num_channels: pics=pics*num_channels if len(filter)!=num_channels: filter=filter*num_channels if len(filter_params)!=num_channels: filter_params=filter_params*num_channels super(NaturalImages,self).__init__(total_qty,name='NaturalImages') self.state=None self.time_between_rates=time_between_rates self.time_to_next_rate=0 self.num_channels=num_channels try: params=plasticity.utils.default_params() except: print "No package 'plastictity' found. NaturalImages will not work." return self.params={} keys=['neuron_offsets','num_neurons', 'pattern_input','noise_input'] for k in keys: self.params[k]=params[k] self.params['pattern_input']=[] self.params['noise_input']=[] for c in range(num_channels): self.params['pattern_input'].append(plasticity.utils.get_pattern()) self.params['noise_input'].append(plasticity.utils.get_noise()) for c in range(num_channels): self.params['pattern_input'][c]['num_inputs']=qty[c] self.params['pattern_input'][c]['filter']=filter[c] self.params['pattern_input'][c]['filter_params']=filter_params[c] if pics[c]: self.params['pattern_input'][c]['filename']=default_pics_path+pics[c] else: self.params['pattern_input'][c]['type']=0 num_neurons=1 num_inputs=total_qty self.X=numpy.zeros((num_neurons,num_inputs),numpy.float64) plasticity.train.init_params(self.params) N=total_qty self.N=N self.connection_groups_to=[] self.spikes=numpy.zeros(N,numpy.byte) self.old_spikes=numpy.zeros(N,numpy.byte) self.type=get_neuron_type(self) self.initialized=True