public sortingTest() { int n = 3; var nn = new vnn(n, 100, n); var tr = new trainer(nn, data.DataSets.sorting(n), 0.1, 0.9); tr.TrainFor(10000); System.IO.File.WriteAllBytes("E:\\OneDrive\\Other\\Temp\\tempNN", nn.ToBytes()); WriteLine("MSE = " + tr.getMSE()); WriteLine("Acc = " + tr.getAccuracy(1 / (double)n)); nn.TestLoop(); }
public void test_binary() { vnn nn = new vnn(2, 5, 2); reporter rep = new reporter(nn); Console.WriteLine(rep.wHiddenOutput); byte[] bts = nn.ToBytes(); vnn newnn = new vnn(bts); rep = new reporter(newnn); Console.WriteLine(rep.wHiddenOutput); Console.ReadKey(); }
/* * public void backpropagate(GameLog _game) * { * return; * * int[] idx = Enumerable.Range(0, _game.ALog.Count + _game.BLog.Count).ToArray(); * idx.ShuffleRandomly(); * * double[] desired = new double[1]; * double[] inputs; * * lock (locker) { backprop_locked(_game); } * void backprop_locked(GameLog game) * { * for(int i = 0, to = game.ALog.Count + game.BLog.Count, alen = game.ALog.Count; i < to; i++) * { * int index = idx[i]; * if(index < alen) * { * inputs = game.ALog[index]; * desired[0] = game.AWon.Value ? 1 : 0; * } * else * { * inputs = game.BLog[index - alen]; * desired[0] = game.AWon.Value ? 0 : 1; * } * * tr.TrainOne(inputs, desired, 0.05, 0.1); * } * } * } */ public void Save() { lock (locker) { File.WriteAllBytes(savepath + DateTime.Now.ToString(" MM-dd HH-mm-ss"), nn.ToBytes()); } }
public vnn GetNNCopy() => new vnn(nn.ToBytes());