def __init__(self, domain, index, type, value, decay_time = 0.0): Neuron.__init__(self, domain, index) self.type = type self.decay_time = decay_time if self.type == 'current': self.value = value elif self.type == 'voltage': self.V_membrane = value
def __init__(self, domain, index, freq, scale, decay): Neuron.__init__(self, domain, index) self.type = 'current' self.freq = freq/1000.0 #Probability of occring in 1ms self.scale = scale self.decay = 1.0-1.0/decay self.value = 0.0 self.spikes_record = []
def __init__(self, domain, index, settings, STDP='on', initial_membrane_potential=0.0): #settings['reset_potential'] = -70 #settings['spike_potential'] = 0 #settings['threshold'] = -54 #settings['refactory_period'] = 5.0 ms #settings['left_window_constant'] = (t+) #settings['right_window_constant'] = (t-) #settings['learning_rate'] = learning_rate (A+) #settings['stability'] = stability (B) #settings['weight_ceiling'] = weight_ceiling #settings['type'] = 'current' or 'voltage' #settings['output_current_decay'] = 3.0 (only need if type is current) #settings['output_current_peak'] = 2.2 (only need if type is current) Neuron.__init__(self, domain, index) self.STDP = STDP self.reset_potential = settings['reset_potential'] self.spike_potential = settings['spike_potential'] self.threshold = settings['threshold'] self.weight_ceiling = settings['weight_ceiling'] self.type = settings['type'] if self.type == 'current': self.output_current_peak = settings['output_current_peak'] self.output_current_decay = 1.0-1.0/settings['output_current_decay'] self.value = 0.0 self.stability = settings["stability"] self.left_window_constant = settings["left_window_constant"] self.left_learning_rate = settings['learning_rate'] self.left_window_width = abs(math.log(0.01) * self.left_window_constant) self.right_window_constant = settings["right_window_constant"] self.right_window_width = abs(math.log(0.01) * self.right_window_constant) self.right_learning_rate = self.left_learning_rate * self.left_window_width * self.stability / self.right_window_width if initial_membrane_potential == 0.0: self.membrane_potential = self.reset_potential else: self.membrane_potential = initial_membrane_potential self.left_window = [] self.right_window = [] self.refactory_period = settings['refactory_period'] self.refact = 'no' self.last_firing_time = -1 self.spikes_number = 0 self.spikes_record = [] self.value_record = [] self.weights_record = []
def __init__(self, domain, index, scale, decay, pool_settings): Neuron.__init__(self, domain, index) self.type = 'current' self.freq = 0.0 self.scale = scale self.decay = 1.0-1.0/decay self.alpha = pool_settings['alpha'] self.k = pool_settings['k'] self.a = pool_settings['a'] self.b = pool_settings['b'] self.c = pool_settings['c'] self.d = pool_settings['d'] self.pre_spike_time = [] self.value = 0.0 self.spikes_record = [] self.freq_record = []