static void Main(string[] args) { //XORTest(); FileInfo f = new FileInfo(@"C:\Users\Wes\Downloads\Bitfinex_BTCUSD_1h.csv"); List <MarketData> test = f.ReadCSV <MarketData>(); int[] inputs = new int[] { 1, 30, 50, 50, 30, 6 }; var net = new FFNeuralNetwork(inputs); //Data still needs normalized but basic principle is here foreach (var data in test) { net.FeedForward(data.FloatDate); net.BackProp(data.ToArray()); } var now = new float[] { DateTime.Now.AddHours(1).Ticks }; var results = net.FeedForward(now); foreach (var r in results) { Console.WriteLine(r); } }
//public sealed class MarketMap : ClassMap<MarketData> //{ // public MarketMap() // { // var mm = Map(x => x.Date); // } //} private static void XORTest() { int iterations = 50000; int[] layers = new int[] { 4, 10, 25, 10, 1 }; FFNeuralNetwork nn = new FFNeuralNetwork(layers); for (int i = 0; i < iterations; i++) { #region 4-XOR nn.FeedForward(new float[] { 0, 0, 0, 1 }); nn.BackProp(new float[] { 1 }); nn.FeedForward(new float[] { 0, 0, 1, 0 }); nn.BackProp(new float[] { 1 }); nn.FeedForward(new float[] { 0, 0, 1, 1 }); nn.BackProp(new float[] { 0 }); nn.FeedForward(new float[] { 0, 1, 0, 0 }); nn.BackProp(new float[] { 1 }); nn.FeedForward(new float[] { 0, 1, 0, 1 }); nn.BackProp(new float[] { 0 }); nn.FeedForward(new float[] { 0, 1, 1, 0 }); nn.BackProp(new float[] { 0 }); nn.FeedForward(new float[] { 0, 1, 1, 1 }); nn.BackProp(new float[] { 1 }); nn.FeedForward(new float[] { 1, 0, 0, 0 }); nn.BackProp(new float[] { 1 }); nn.FeedForward(new float[] { 1, 0, 0, 1 }); nn.BackProp(new float[] { 0 }); nn.FeedForward(new float[] { 1, 0, 1, 0 }); nn.BackProp(new float[] { 0 }); nn.FeedForward(new float[] { 1, 0, 1, 1 }); nn.BackProp(new float[] { 1 }); nn.FeedForward(new float[] { 1, 1, 0, 0 }); nn.BackProp(new float[] { 0 }); nn.FeedForward(new float[] { 1, 1, 0, 1 }); nn.BackProp(new float[] { 1 }); nn.FeedForward(new float[] { 1, 1, 1, 0 }); nn.BackProp(new float[] { 1 }); //nn.FeedForward(new float[] { 1, 1, 1, 1 }); //nn.BackProp(new float[] { 0 }); if (i % 1000 == 0) { Console.Clear(); //Console.WriteLine(nn.ToString()); var results = new List <float>() { nn.FeedForward(new float[] { 0, 0, 0, 1 })[0], nn.FeedForward(new float[] { 0, 0, 1, 0 })[0], nn.FeedForward(new float[] { 0, 0, 1, 1 })[0], nn.FeedForward(new float[] { 0, 1, 0, 0 })[0], nn.FeedForward(new float[] { 0, 1, 0, 1 })[0], nn.FeedForward(new float[] { 0, 1, 1, 0 })[0], nn.FeedForward(new float[] { 0, 1, 1, 1 })[0], nn.FeedForward(new float[] { 1, 0, 0, 0 })[0], nn.FeedForward(new float[] { 1, 0, 0, 1 })[0], nn.FeedForward(new float[] { 1, 0, 1, 0 })[0], nn.FeedForward(new float[] { 1, 0, 1, 1 })[0], nn.FeedForward(new float[] { 1, 1, 0, 0 })[0], nn.FeedForward(new float[] { 1, 1, 0, 1 })[0], nn.FeedForward(new float[] { 1, 1, 1, 0 })[0], nn.FeedForward(new float[] { 1, 1, 1, 1 })[0], }; foreach (var Z in results) { Console.WriteLine(Z); } } #endregion } var result = nn.FeedForward(new float[] { 1, 1, 1, 1 }); Console.WriteLine(result[0]); }