Beispiel #1
0
        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));
        }
Beispiel #2
0
        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);
                }
            }
        }