Beispiel #1
0
        public static async Task <IActionResult> StartNN([HttpTrigger(AuthorizationLevel.Function, "post", Route = null)] HttpRequest req, ILogger log)
        {
            log.LogInformation("C# HTTP trigger function processed a request.");

            NNSetup data;

            try
            {
                string requestBody = await new StreamReader(req.Body).ReadToEndAsync();
                data = JsonConvert.DeserializeObject <NNSetup>(requestBody);
            }
            catch (Exception ex)
            {
                return(new BadRequestObjectResult("Nicely done, I've received an error at the JSON deserialization:\n" + ex));
            }
            try
            {
                var cancellationToken = new CancellationTokenSource();

                var network = new TeachNetwork
                {
                    MomentTemp               = data.MomentTemp == 0 ? 0.5 : data.MomentTemp,
                    LearningRateTemp         = data.LearningRateTemp == 0 ? 0.1 : data.LearningRateTemp,
                    NeuronsAndLayers         = string.IsNullOrEmpty(data.NeuronsAndLayers) ? "784 26+ 16 10" : data.NeuronsAndLayers,
                    terminatingErrorProcents = data.TerminatingErrorProcents == 0 ? 0.00011 : data.TerminatingErrorProcents
                };

                AsyncNN.asyncNeuralNetwork.Add(AsyncNN.key, new AsyncNN.NN {
                    CancellationToken = cancellationToken, Network = network
                });
                Thread workerThread = new Thread(() => AsyncNN.asyncNeuralNetwork[AsyncNN.key - 1].Network.Start(cancellationToken));                 // I don't know why it doesn't work without the '- 1'
                workerThread.Start();

                return(new OkObjectResult(AsyncNN.key++));                //A key so the used could access to the sertain NeuralNetwork
            }
            catch (Exception ex)
            {
                return(new BadRequestObjectResult("The error occured at the Task call of the NeuralNetwork " + ex));
            }
        }
Beispiel #2
0
        static void Main(string[] args)
        {
            #region Set process settings

            Process thisProc = Process.GetCurrentProcess();
            thisProc.PriorityClass = ProcessPriorityClass.High;

            #endregion

            const int receptors             = 75;
            const int numberOfOutputClasses = 13; // Количество наших классов
            int[]     neuronByLayer         = { 45, 23, numberOfOutputClasses };


            var teachNetwork = new TeachNetwork(receptors, numberOfOutputClasses, neuronByLayer, "memory.txt")
            {
                Iteration   = 10,
                TestVectors = new FileManager().ReadVectors("inputDataTest.txt")
            };

            teachNetwork.TrainNet();

            Console.ReadKey();
        }