Я тестирую библиотеку NeuronDotNet для назначения классов с использованием C #.У меня есть очень простое консольное приложение, которое я использую для тестирования некоторых фрагментов кода, представленных в руководстве для библиотеки, цель задания - научить программу различать случайные точки в квадрате, которые могут или могут бытьне быть внутри круга, который также находится внутри квадрата.Таким образом, в основном, точки внутри квадрата также находятся внутри круга.Вот что у меня есть:
namespace _469_A7
{
class Program
{
static void Main(string[] args)
{
//Initlaize the backpropogation network
LinearLayer inputLayer = new LinearLayer(2);
SigmoidLayer hiddenLayer = new SigmoidLayer(8);
SigmoidLayer outputLayer = new SigmoidLayer(2);
new BackpropagationConnector(inputLayer, hiddenLayer);
new BackpropagationConnector(hiddenLayer, outputLayer);
BackpropagationNetwork network = new BackpropagationNetwork(inputLayer, outputLayer);
//Generate a training set for the ANN
TrainingSet trainingSet = new TrainingSet(2, 2);
//TEST: Generate random set of points and add to training set,
//for testing purposes start with 10 samples;
Point p;
Program program = new Program(); //Used to access randdouble function
Random rand = new Random();
for(int i = 0; i < 10; i++)
{
//These points will be within the circle radius Type A
if(rand.NextDouble() > 0.5)
{
p = new Point(rand.NextDouble(), rand.NextDouble());
trainingSet.Add(new TrainingSample(new double[2] { p.getX(), p.getY() }, new double[2] { 1, 0 }));
continue;
}
//These points will either be on the border or outside the circle Type B
p = new Point(program.randdouble(1.0, 4.0), program.randdouble(1.0, 4.0));
trainingSet.Add(new TrainingSample(new double[2] { p.getX(), p.getY() }, new double[2] { 0, 1 }));
}
//Start network learning
network.Learn(trainingSet, 100);
//Stop network learning
//network.StopLearning();
}
//generates a psuedo-random double between min and max
public double randdouble(double min, double max)
{
Random rand = new Random();
if (min > max)
{
return rand.NextDouble() * (min - max) + max;
}
else
{
return rand.NextDouble() * (max - min) + min;
}
}
}
//Class defines a point in X/Y coordinates
public class Point
{
private double X;
private double Y;
public Point(double xVal, double yVal)
{
this.X = xVal;
this.Y = yVal;
}
public double getX()
{
return X;
}
public double getY()
{
return Y;
}
}
}
Это в основном все, что мне нужно, единственный вопрос, который у меня есть, - как обработать вывод ??Более конкретно, мне нужно вывести значение «размера шага» и «импульса», хотя было бы неплохо вывести и другую информацию.Любой, кто имеет опыт использования NeuronDotNet, ценит ваш вклад.