Xor in C#
Xor in C#
namespace BackPropagationXor
{
class Program
{
static void Main(string[] args)
{
train();
}
class sigmoid
{
public static double output(double x)
{
return 1.0 / (1.0 + Math.Exp(-x));
}
class Neuron
{
public double[] inputs = new double[2];
public double[] weights = new double[2];
public double error;
// desired results
double[] results = { 0, 1, 1, 0 };
// random weights
hiddenNeuron1.randomizeWeights();
hiddenNeuron2.randomizeWeights();
outputNeuron.randomizeWeights();
int epoch = 0;
Retry:
epoch++;
for (int i = 0; i < 4; i++) // very important, do NOT train for only
one example
{
// 1) forward propagation (calculates output)
hiddenNeuron1.inputs = new double[] { inputs[i, 0], inputs[i, 1] };
hiddenNeuron2.inputs = new double[] { inputs[i, 0], inputs[i, 1] };
hiddenNeuron1.adjustWeights();
hiddenNeuron2.adjustWeights();
}
Console.ReadLine();
}
}
}