public virtual INeuralNetwork CreateNeuralNetwork(int inputNodes, int hiddenNodes, int staticWeights=0)
        {
            var wrapper = new AForgeNeuralNetwork(inputNodes, hiddenNodes,staticWeights);

            wrapper.Randomize();
            return wrapper;
        }
Beispiel #2
0
        /// <summary>
        /// Initialise to random values, implemented by generating a new network and extracting the relevant weights
        /// </summary>
        /// <returns></returns>
        private double[] DefaultNeuronWeights()
        {
            double[] weights = null;

            var net =
                new AForgeNeuralNetwork(MorphoSyntacticContext.VectorLength + MorphoSyntacticContext.VectorLength, MorphoSyntacticContext.VectorLength);

            net.Randomize();
            net.Theta.SaveTo(ref weights);
            return weights;
        }
Beispiel #3
0
        public void TestStaticWeightsPreserved()
        {
            double[] weights = null;
            _target.SaveTo(ref weights);

            var net2 = new AForgeNeuralNetwork(4, 5, 2);
            net2.Theta.LoadFrom(weights);
            var result1 = _net1.Run(new[] { 0.3, 0.4, 0.0, 0.0});
            var result2 = net2.Run(new[] { 0.3, 0.4, 0.0, 0.0 });

            _net1.HiddenLayer[0].Should().NotBe(net2.HiddenLayer[0],"Static weights from neurons were not preserved after LoadFrom");
        }
Beispiel #4
0
        public void TestNonStaticWeightsRestored()
        {
            double[] weights = null;
            _target.SaveTo(ref weights);

            var net2 = new AForgeNeuralNetwork(4, 5, 2);
            net2.Theta.LoadFrom(weights);

            _net1.UnderlyingNetwork.Layers[0].Neurons[0].Weights[3].Should().Be(net2.UnderlyingNetwork.Layers[0].Neurons[0].Weights[3]);
            var result1 = _net1.Run(new[]   { 0.0, 0.0, 0.4, 0.5});
            var result2 = net2.Run(new[]    { 0.0, 0.0, 0.4, 0.5});
            _net1.HiddenLayer[0].Should().Be(net2.HiddenLayer[0], "same inputs with restored weights");
        }
Beispiel #5
0
 public void Setup()
 {
     _net1 = new AForgeNeuralNetwork(4, 5, 2);
     _target = _net1.Theta as AForgeTheta;
 }