Changeset 791 for cpp/frams/neuro/impl/neuroimpl-simple.cpp
- Timestamp:
- 05/29/18 16:24:39 (7 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
cpp/frams/neuro/impl/neuroimpl-simple.cpp
r726 r791 12 12 int NI_StdNeuron::lateinit() 13 13 { 14 istate=newstate+neuro->state; // neuro->state -> random initialization15 calcOutput();16 neuro->state=newstate;17 return 1;14 istate = newstate + neuro->state; // neuro->state -> random initialization 15 calcOutput(); 16 neuro->state = newstate; 17 return 1; 18 18 } 19 19 20 20 void NI_StdNeuron::calcInternalState() 21 21 { 22 double sum=getWeightedInputSum();23 velocity=force*(sum-istate)+inertia*velocity;24 istate+=velocity;25 if (istate>NEURO_MAX) istate=NEURO_MAX;26 else if (istate<-NEURO_MAX) istate=-NEURO_MAX;22 double sum = getWeightedInputSum(); 23 velocity = force*(sum - istate) + inertia*velocity; 24 istate += velocity; 25 if (istate > NEURO_MAX) istate = NEURO_MAX; 26 else if (istate < -NEURO_MAX) istate = -NEURO_MAX; 27 27 } 28 28 29 29 void NI_StdNeuron::go() 30 30 { 31 calcInternalState();32 calcOutput();31 calcInternalState(); 32 calcOutput(); 33 33 } 34 34 35 35 void NI_StdNeuron::calcOutput() 36 36 { 37 double s=istate * sigmo;38 if (s<-30.0) setState(-1);39 else setState(2.0/(1.0+exp(-s))-1.0); // -1...137 double s = istate * sigmo; 38 if (s < -30.0) setState(-1); 39 else setState(2.0 / (1.0 + exp(-s)) - 1.0); // -1...1 40 40 } 41 41 42 42 void NI_StdUNeuron::calcOutput() 43 43 { 44 double s=istate * sigmo;45 if (s<-30.0) setState(0);46 else setState(1.0/(1.0+exp(-s))); // 0...144 double s = istate * sigmo; 45 if (s < -30.0) setState(0); 46 else setState(1.0 / (1.0 + exp(-s))); // 0...1 47 47 }
Note: See TracChangeset
for help on using the changeset viewer.