The Python leabra library strive to be quantitatively equivalent to the Leabra implementation of the emergent software. Below are useful remarks about some differences and where in emergent some of the behavior of Leabra are to be found.
emergent
is in coded with float precision, while Python natively supports doubles. This difference
means that the quantitative equivalence does not go beyond the 1e-7 precision (relative to the values considered).
Moreover, rounding differences add up in an iterative process such as neural networks, and may for
instant produce significantly different asymptotes.
- Hard clamping behavior (forcing activities) is found in
LeabraUnitSpec::Compute_HardClamp()
. Connection.learning_rule()
andConnection.apply_dwt()
fromLeabraConSpec::C_Compute_Weights_CtLeabraXCAL()
.Unit.avg_l_lrn
fromLeabraUnitSpec::GetLrn()