示例#1
0
    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
示例#2
0
    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