Я хочу использовать NeuronDotNet в моем приложении.
пожалуйста, рассмотрите этот класс:
using NeuronDotNet.Core;
public class CostomNeuralNetwork
{
public static double[] SampleInput = new double[] {4, 2, 8, 6, 15, 49, 22};
public static double[] SampleOutput = new double[] {4, 2};
private BackpropagationNetwork network;
public CostomNeuralNetwork()
{
var inputLayer = new LinearLayer(7);
var hiddenLayer = new SigmoidLayer(20);
var outputLayer = new SigmoidLayer(2);
new BackpropagationConnector(inputLayer, hiddenLayer).Initializer = new RandomFunction(0d, 0.3d);
new BackpropagationConnector(hiddenLayer, outputLayer).Initializer = new RandomFunction(0d, 0.3d);
network = new BackpropagationNetwork(inputLayer, outputLayer);
network.SetLearningRate(0.3);
}
public void Train(double[] input,double []output)
{
var set = new TrainingSet(7, 2);
set.Add(new TrainingSample(input, output));
network.Learn(set, 10000);
}
public double[] Estimate(double[] input)
{
var res = network.Run(input);
return res;
}
}
когда я пытаюсь использовать этот класс с этим кодом:
var costomNetwork = new CostomNeuralNetwork();
costomNetwork.Train(CostomNeuralNetwork.SampleInput, CostomNeuralNetwork.SampleOutput);
costomNetwork.Estimate(CostomNeuralNetwork.SampleInput);
всегда ответ, возвращаемый методом Estimate, представляет собой двойной массив, содержащий члены thow, значения которых равны 1.0 или что-то вроде 0.9999923.
независимо от того, какие данные я передаю в метод оценивания, он всегда возвращает то же самое, что и ответ.
я делаю что-то не так, чтобы при любом входе возвращался такой же выход? у кого-нибудь есть такая же проблема с этим кодом?