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(); //отображаем результат обучения } } }
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); } }