Пример #1
0
 //Constructors
 /// <summary>
 /// Creates an initialized instance
 /// </summary>
 /// <param name="stimuliCoeff">Input stimuli coefficient (pA)</param>
 /// <param name="role">Role of the neuron (excitatory or inhibitory)</param>
 /// <param name="refractoryPeriods">Number of after spike computation cycles while an input stimuli is ignored (ms)</param>
 /// <param name="solverMethod">ODE numerical solver method</param>
 /// <param name="solverCompSteps">ODE numerical solver computation steps of the time step</param>
 public AutoIzhikevichIFSettings(double stimuliCoeff,
                                 CommonEnums.NeuronRole role,
                                 int refractoryPeriods,
                                 ODENumSolver.Method solverMethod,
                                 int solverCompSteps
                                 )
 {
     StimuliCoeff      = stimuliCoeff;
     Role              = role;
     RefractoryPeriods = refractoryPeriods;
     SolverMethod      = solverMethod;
     SolverCompSteps   = solverCompSteps;
     return;
 }
Пример #2
0
 //Constructor
 /// <summary>
 /// Creates an initialized instance
 /// </summary>
 /// <param name="placement">Home pool identificator and neuron placement within the pool.</param>
 /// <param name="role">Neuron's signal role (Excitatory/Inhibitory).</param>
 /// <param name="activation">Instantiated activation function.</param>
 /// <param name="bias">Constant bias.</param>
 public SpikingNeuron(NeuronPlacement placement,
                      CommonEnums.NeuronRole role,
                      IActivationFunction activation,
                      double bias
                      )
 {
     Placement = placement;
     Role      = role;
     Bias      = bias;
     //Check whether function is spiking
     if (activation.OutputSignalType != CommonEnums.NeuronSignalType.Spike)
     {
         throw new ArgumentException("Activation function is not spiking.", "activation");
     }
     _activation = activation;
     _firingRate = new FiringRate();
     Statistics  = new NeuronStatistics(_activation.InternalStateRange);
     Reset(false);
     return;
 }
Пример #3
0
 //Constructor
 /// <summary>
 /// Creates an initialized instance
 /// </summary>
 /// <param name="placement">Home pool identificator and neuron placement within the pool.</param>
 /// <param name="role">Neuron's signal role (Excitatory/Inhibitory).</param>
 /// <param name="activation">Instantiated activation function.</param>
 /// <param name="bias">Constant bias.</param>
 /// <param name="retainmentRatio">Retainment ratio.</param>
 public AnalogNeuron(NeuronPlacement placement,
                     CommonEnums.NeuronRole role,
                     IActivationFunction activation,
                     double bias,
                     double retainmentRatio
                     )
 {
     Placement = placement;
     Role      = role;
     Bias      = bias;
     //Check whether function is analog
     if (activation.OutputSignalType != CommonEnums.NeuronSignalType.Analog)
     {
         throw new ArgumentException("Activation function is not analog.", "activation");
     }
     _activation      = activation;
     _retainmentRatio = retainmentRatio;
     Statistics       = new NeuronStatistics(OutputRange);
     Reset(false);
     return;
 }