Exemplo n.º 1
0
void TripletConnection::init(AurynFloat tau_hom, AurynFloat eta, AurynFloat kappa, AurynFloat maxweight)
{
	if ( dst->get_post_size() == 0 ) return;

	A3_plus = 6.5e-3;
	A3_plus *= eta;

	tau_plus  = 16.8e-3;
	tau_minus = 33.7e-3;
	tau_long  = 114e-3;

	tau_homeostatic = tau_hom;

	tr_pre = src->get_pre_trace(tau_plus);
	// tr_pre = new LinearTrace(src->get_pre_size(),tau_plus); 
	tr_post = dst->get_post_trace(tau_minus);
	tr_post2 = dst->get_post_trace(tau_long);
	tr_post_hom = dst->get_post_trace(tau_hom);

	hom_fudge = A3_plus*tau_plus*tau_long/(tau_minus)/kappa/tau_hom/tau_hom;
	set_min_weight(0.0);
	set_max_weight(maxweight);

	stdp_active = true;

}
Exemplo n.º 2
0
void TripletConnection::init(AurynFloat tau_hom, AurynFloat eta, AurynFloat kappa, AurynFloat maxweight)
{
	if ( dst->get_post_size() == 0 ) return; // avoids to run this code on silent nodes with zero post neurons.

	/* Initialization of plasticity parameters. */
	A3_plus = 6.5e-3;
	A3_plus *= eta;

	tau_plus  = 16.8e-3;
	tau_minus = 33.7e-3;
	tau_long  = 114e-3;

	tau_homeostatic = tau_hom;

	/* Initialization of presynaptic traces */
	tr_pre = src->get_pre_trace(tau_plus);

	/* Initialization of postsynaptic traces */
	tr_post = dst->get_post_trace(tau_minus);
	tr_post2 = dst->get_post_trace(tau_long);
	tr_post_hom = dst->get_post_trace(tau_hom);

	hom_fudge = A3_plus*tau_plus*tau_long/(tau_minus)/kappa/tau_hom/tau_hom;

	/* Set min/max weight values. */
	set_min_weight(0.0);
	set_max_weight(maxweight);

	stdp_active = true;

}