Exemple #1
0
        private void Learning()
        {
            while (true)
            {
                if (isCanChange) //для синхронизации потоков
                {
                    for (int k = 0; k < 10000; k++) //обучаем Х раз на одних и тех же данных
                    {
                        for (int i = 0; i < listPoints.Count; i++)
                        {
                            double[] inp = new double[] { listPoints[i].x, listPoints[i].y , 1};//(double) r.Next(-500, 500) / 234.0};
                            nn.feedForward(inp); //рассчитываем результат

                            double[] targets = new double[] { listPoints[i].color, -listPoints[i].color };
                            nn.backpropagation(targets); //корректируем результат
                        }
                    }
                    ReDraw(); //отображаем результат обучения
                }
            }
        }
Exemple #2
0
        private void Learning()
        {
            while (true)
            {
                if (isCanChange)
                {
                    for (int k = 0; k < 1000; k++)
                    {
                        for (int i = 0; i < listPoints.Count; i++)
                        {
                            double[] inp = new double[] { listPoints[i].x, listPoints[i].y };
                            //double[] res = nn.feedForward(inp);


                            double[] targets = new double[] { listPoints[i].color, -listPoints[i].color };
                            //nn.backpropagation(targets);
                            nn.backpropagation(inp, targets);
                        }
                    }
                    ReDraw();
                }
                Thread.Sleep(100);
            }
        }