public Tuple <double, double> Forward(JumpyReflexData data) { i++; // forward a random data point through the network //var x = new Volume(new[] { 0.3, -0.5 }, new Shape(2)); if (i == 2) { } var prob = Net.Forward(new Volume(data.Features, new Shape(TrainerConfig.InputNodesCount))).Get(0); var prob2 = Net.Forward(new Volume(data.Features, new Shape(TrainerConfig.InputNodesCount))).Get(1); return(new Tuple <double, double>(prob, prob2)); }
private List <JumpyReflexData> GenerateTrainData() { var trainData = new List <JumpyReflexData>(); Random r1 = new Random(DateTime.Now.Second); Random r2 = new Random(); for (var i = 0; i < 1000; i++) { var first = r1.Next(0, 9); var second = r2.Next(0, 9); var temp = new JumpyReflexData { Features = new[] { 0.0, 1, 0, 0, 0, 0, 0, 0, 0, 0 }, Jump = false }; temp.Features[first] = 1.0; temp.Features[second] = 1.0; if ((first < 4 && first > 1) || (second < 4 && second > 1)) { temp.Jump = true; } trainData.Add(temp); } return(trainData); }