Пример #1
0
        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");
        }
Пример #2
0
        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();
                }
        }