44 lines
773 B
C++
44 lines
773 B
C++
|
#pragma once
|
||
|
|
||
|
#include "Neuron.h"
|
||
|
|
||
|
void Neuron::setOutputValue(double value)
|
||
|
{
|
||
|
outputValue = value;
|
||
|
}
|
||
|
|
||
|
double Neuron::transferFunction(double inputValue)
|
||
|
{
|
||
|
return std::tanh(inputValue);
|
||
|
}
|
||
|
|
||
|
double Neuron::transferFunctionDerivative(double inputValue)
|
||
|
{
|
||
|
return 1.0 - (inputValue * inputValue);
|
||
|
}
|
||
|
|
||
|
void Neuron::feedForward(double inputValue)
|
||
|
{
|
||
|
outputValue = Neuron::transferFunction(inputValue);
|
||
|
}
|
||
|
|
||
|
double Neuron::getWeightedOutputValue(int outputNeuron) const
|
||
|
{
|
||
|
return outputValue * outputWeights[outputNeuron];
|
||
|
}
|
||
|
|
||
|
void Neuron::createOutputWeights(unsigned int number)
|
||
|
{
|
||
|
outputWeights.clear();
|
||
|
|
||
|
for (unsigned int i = 0; i < number; ++i)
|
||
|
{
|
||
|
outputWeights.push_back(std::rand() / (double)RAND_MAX);
|
||
|
}
|
||
|
}
|
||
|
|
||
|
double Neuron::getOutputValue() const
|
||
|
{
|
||
|
return outputValue;
|
||
|
}
|