i'm trying use encog library neural networks in multicharts .net trying implement xor example make work in signal, first attempt use nn in multicharts. shouldn't difficoult, initialise input , output, , execute nn building, learning , running on last bar of charts in calcbar() method.
using system; using system.drawing; using system.linq; using powerlanguage.function; using atcenterproxy.interop; using system.text; using system.collections.generic; using encog.neural.networks; using encog.neural.networks.layers; using encog.engine.network.activation; using encog.ml.data; using encog.neural.networks.training.propagation.resilient; using encog.ml.train; using encog.ml.data.basic; using encog; namespace powerlanguage.strategy { public class larning_neuralnetwork : signalobject { public larning_neuralnetwork(object _ctx):base(_ctx){} public static double[][] xorinput = { new[] {0.0, 0.0}, new[] {1.0, 0.0}, new[] {0.0, 1.0}, new[] {1.0, 1.0} }; public static double[][] xorideal = { new[] {0.0}, new[] {1.0}, new[] {1.0}, new[] {0.0} }; protected override void create() { // create variable objects, function objects, order objects etc. } protected override void startcalc() { } protected override void calcbar(){ if (bars.lastbaronchart){ var network = new basicnetwork(); network.addlayer(new basiclayer(null, true, 2)); network.addlayer(new basiclayer(new activationsigmoid(), true, 3)); network.addlayer(new basiclayer(new activationsigmoid(), false, 1)); network.structure.finalizestructure(); network.reset(); // create training data imldataset trainingset = new basicmldataset(xorinput, xorideal); // train neural network imltrain train = new resilientpropagation(network, trainingset); int epoch = 1; { train.iteration(); expertcommentary.writeline(@"epoch #" + epoch + @" error:" + train.error); epoch++; } while (train.error > 0.01); train.finishtraining(); // test neural network expertcommentary.writeline(@"neural network results:"); foreach (imldatapair pair in trainingset) { imldata output = network.compute(pair.input); expertcommentary.writeline(pair.input[0] + @"," + pair.input[1] + @", actual=" + output[0] + @",ideal=" + pair.ideal[0]); } encogframework.instance.shutdown(); } } } } i doesn't give building error, when running creates red error reporting overflow or underflow during arithmetic operation @ line
network.reset(); it shouldnt big deal, reset() method should randomize weghts of nn matrix, how possible not working? idea?
Comments
Post a Comment