public void TestDynamicXOR() { Func <int, int, double> inputFunc = OnInputFunc; Func <int, int, double> idealFunc = delegate(int chunk, int index) { return(XOR.XORIdeal[chunk][index]); }; var input = new FuncMLDataProvider(inputFunc, XOR.XORInput.Length, XOR.XORInput[0].Length); var ideal = new FuncMLDataProvider(idealFunc, XOR.XORIdeal.Length, XOR.XORIdeal[0].Length); var ds = new DynamicMLDataSet(input, ideal); var network = new BasicNetwork(); network.AddLayer(new BasicLayer(new ActivationSigmoid(), false, ds.InputSize)); network.AddLayer(new BasicLayer(new ActivationSigmoid(), false, ds.InputSize + 1)); network.AddLayer(new BasicLayer(new ActivationSigmoid(), false, ds.IdealSize)); network.Structure.FinalizeStructure(); network.Reset(42); var trainer = new Encog.Neural.Networks.Training.Propagation.Resilient.ResilientPropagation(network, ds); int maxIteration = 300; int iteration = 0; do { trainer.Iteration(); Debug.WriteLine(++iteration + ": Error = " + trainer.Error); } while(trainer.Error > 0.0001 && maxIteration > iteration); Assert.IsTrue(iteration < maxIteration); }
public DynamicMLDataPair(DynamicMLDataSet ds, int index) { _ds = ds; _index = index; Significance = 1.0; Input = new DynamicWindowMLData(_ds.InputArgs, index); Ideal = new DynamicWindowMLData(_ds.IdealArgs, index); }
public void BasicSlidingSineSignal() { var listSize = 30 * 200; var inputList = new List <double>(listSize); var idealList = new List <double>(listSize); var rand = new Random(23); for (int i = 0; i < listSize; i++) { idealList.Add(Math.Sin(Math.PI * 2.0 * i / 30)); inputList.Add(idealList[idealList.Count - 1] + (rand.NextDouble() - 0.5) * 0.1); } var input = new SlidingWindowMLDataProvider(inputList, 10, 0, 1); var ideal = new SlidingWindowMLDataProvider(idealList, 2, 11, 1); // predecit the eleventh, twelth item from the ten previous to it var ds = new DynamicMLDataSet(input, ideal); Assert.AreEqual(10, input.WindowSize); Assert.AreEqual(10, ds.InputSize); Assert.AreEqual(2, ds.IdealSize); Assert.AreEqual(listSize, ds.Count); var network = new BasicNetwork(); network.AddLayer(new BasicLayer(ds.InputSize)); network.AddLayer(new BasicLayer(ds.InputSize + 3)); network.AddLayer(new BasicLayer(ds.IdealSize)); network.Structure.FinalizeStructure(); network.Reset(42); var trainer = new Encog.Neural.Networks.Training.Propagation.Resilient.ResilientPropagation(network, ds); int maxIteration = 300; int iteration = 0; do { trainer.Iteration(); Debug.WriteLine(++iteration + ": Error = " + trainer.Error); } while(trainer.Error > 0.001 && maxIteration > iteration); Assert.IsTrue(iteration < maxIteration); }
public DynamicMLDataSetEnumerator(DynamicMLDataSet ds) { _ds = ds; }