static void Main()
{
const uint num_layers = 3;
const uint num_neurons_hidden = 96;
const float desired_error = 0.00007F;
using (TrainingData trainData = new TrainingData())
using (TrainingData testData = new TrainingData())
{
trainData.CreateTrainFromCallback(374, 48, 3, TrainingDataCallback);
testData.CreateTrainFromCallback(594, 48, 3, TestDataCallback);
// Test Accessor classes
for (int i = 0; i < trainData.TrainDataLength; i++)
{
Console.Write("Input {0}: ", i);
for (int j = 0; j < trainData.InputCount; j++)
{
Console.Write("{0}, ", trainData.InputAccessor[i][j]);
}
Console.Write("\nOutput {0}: ", i);
for (int j = 0; j < trainData.OutputCount; j++)
{
Console.Write("{0}, ", trainData.OutputAccessor[i][j]);
}
Console.WriteLine("");
}
for (float momentum = 0.0F; momentum < 0.7F; momentum += 0.1F)
{
Console.WriteLine("============= momentum = {0} =============\n", momentum);
using (NeuralNet net = new NeuralNet(NetworkType.LAYER, num_layers, trainData.InputCount, num_neurons_hidden, trainData.OutputCount))
{
net.SetCallback(TrainingCallback, "Hello!");
net.TrainingAlgorithm = TrainingAlgorithm.TRAIN_INCREMENTAL;
net.LearningMomentum = momentum;
net.TrainOnData(trainData, 20000, 500, desired_error);
Console.WriteLine("MSE error on train data: {0}", net.TestData(trainData));
Console.WriteLine("MSE error on test data: {0}", net.TestData(testData));
}
}
}
Console.ReadKey();
}