public float Run(Models ml, int trainTimes) { Random rd = new Random(); float[] data = new float[dimensions]; for (int i = 0; i < trainTimes; i++) { int rnd = rd.Next(0, N + 1); for (int j = 0; j < dimensions; j++) { data[j] = datas[rnd][j]; } float val = ml.Calculate(data); ml.Callback(expect[rnd]); } float sum = 0f; for (int i = 0; i < N + 1; i++) { int rnd = i; for (int j = 0; j < dimensions; j++) { data[j] = datas[rnd][j]; } float val = ml.Calculate(data); ml.Callback(expect[rnd]); sum += (val - expect[rnd]) * (val - expect[rnd]); //lb1.Items.Add(datas[rnd, 0] + " , " + datas[rnd, 1] + " : " + expect[rnd] + " 输出结果: " + val.ToString("0.00") ); } return(sum / 2 / (N + 1)); }
public void Draw(Models ml, int resolution) { Canva1.Children.Clear(); for (int i = 0; i < resolution; i++) { for (int j = 0; j < resolution; j++) { Rectangle r = new Rectangle { Fill = new SolidColorBrush(Color.FromRgb( (byte)(ml.Calculate(new float[] { i / (float)resolution, j / (float)resolution }) * 254), 144, 159)), Width = (Canva1.Width / resolution) + 1f, Height = (Canva1.Height / resolution) + 1f }; r.SetValue(Canvas.LeftProperty, i * (Canva1.Width / (float)resolution)); r.SetValue(Canvas.TopProperty, (resolution - j) * ((Canva1.Height - 1) / (float)resolution) - Canva1.Height / resolution); Canva1.Children.Add(r); } } }