import json
#####################################
###### functions
#####################################
def save_obj(obj, name ):
with open('params/'+ name + '.txt', 'w') as f:
json.dump(obj, f)
#####################################
###### General model parameters
#####################################
store_model = 'model_params'
PopExcL3 = 100 # total population of neurons in l3
PopExcL4 = 200 # total population of neurons in l4
NrInhNrns = 20*int(PopExcL3/100) #total nr of l3 inhibitory neurons
Nr4to3 = 50 # nr of l4 -> l3 connections
nr_Ori = 5
#####
model_params = {
'timeStep' : 1, # timestep
'stimLen' : 10, # visual input duration
'deltaStim' : 50 , # time between consecutive visual inputs
'NrE_L4' : PopExcL4,
'NrE_L3' : PopExcL3,
'NrI_L3' : NrInhNrns,
'Nr4to3' : Nr4to3,
'tau_e' : 1, # excitatory neuron time constant
'tau_i' : 1, # inhibitory neuron time constant
'beta_v' : 0.3, # slope constant (excitatory)
'beta_inh' : 0.3, # slope constant (inhibitory)
'theta_v' : 0, # activation threshold
'vis_amp' : 10, # visual input amplitude
'bck_current' : 10, # visual input amplitude
'depr_value' : 0, # deprivation factor
'nr_Ori' : nr_Ori, # number of orientations
'layerfactor' : 10
}
save_obj(model_params, store_model )
#####################################
###### Plasticity parameters
#####################################
store_plast = 'plast_params'
lrate_factor = 1#0.4
# E to E
wmax_taro = 1/Nr4to3
wmin_taro = 0.0005*wmax_taro
l_rate_ee = .4*lrate_factor*1.5*.025*.04/Nr4to3
# I to E
wmin_ei = .06#*50/Nr4to3
lrate_ei = 0.5*lrate_factor*.3*.5*.1/NrInhNrns
# E to I
wmax_ie = 1/Nr4to3
wmin_ie = .2*wmax_ie/2.5
lrate_ie_Max= lrate_factor*3*.025*10*(.000005*nr_Ori)/Nr4to3
## initial weights
wee_ini = .1*wmax_taro
wee_L4to3_ini = .35*wmax_taro
wie_ini = wmin_ie
w_ie_4to3_ini = .5*wmax_ie
wei_ini = 1*wmin_ei
####
plast_params = {
'wmax_taro' : wmax_taro, #
'wmin_taro' : wmin_taro, #
'l_rate_ee' : l_rate_ee, #
'Theta_eeMax_H' : 26, #
'Theta_eeMax_L' : 15, #
'wmin_ei' : wmin_ei, #
'deltath' : .75,#35, #
'theta_ei_H' : 6, #
'lrate_ei' : lrate_ei, #
'wmax_ie' : wmax_ie, #
'wmin_ie' : wmin_ie, #
'lrate_ie_Max' : lrate_ie_Max, #
'ie_target' : 6, #
'I3_avg_ini' : 3, #
'tau_avg' : 12500, #
'wee_ini' :wee_ini , #
'wee_L4to3_ini' : wee_L4to3_ini, #
'wie_ini' : wie_ini, #
'w_ie_4to3_ini' :w_ie_4to3_ini , #
'wei_ini' : wei_ini, #
}
save_obj(plast_params, store_plast )
print('Parameters stored!')