public void Test_Interbreed_2() { var initSet = new InitNeuroSet(_inputSize, _outputSize).BuildNetworks().Take(2).ToArray(); NeuralNetwork res = null; for (int i = 0; i < 100; i++) { res = _interbreeder.Interbreed(initSet[0], initSet[1]); } Console.Write(res.ToString()); res.Serialize(@"C:\Temp\graph.graphml"); }
static void Main(string[] args) { var reqSerializer = (ISerializer <Request>) new BinarySerializer(); var respSerializer = (ISerializer <Response>) new BinarySerializer(); var log = LogManager.GetLogger("Main"); var testingTime = TimeSpan.FromSeconds(5); var inputSize = 9; var outputSize = 2; var initSetCount = 5; var initSet = new InitNeuroSet(inputSize, outputSize); using (var remoteTestingController = new RemoteTestingController(testingTime, new ImageManager(), log)) using (var server = new TcpServer(52200)) { var trainingSupervisor = new TrainingSupervisor(new Interbreeder(2, outputSize), null, remoteTestingController); server.OnProcess += bytes => { var request = reqSerializer.Deserialize(bytes); var response = remoteTestingController.Compute(request); return(respSerializer.Serialize(response)); }; server.Start(); Task.Factory.StartNew(() => { try { var networks = initSet.BuildNetworks().Take(initSetCount).ToList().AsReadOnly(); trainingSupervisor.Train(networks); remoteTestingController.Dispose(); } catch (Exception e) { log.Error(e); throw; } }); Console.Read(); } }