Example #1
0
        private void button1_Click(object sender, EventArgs e)
        {
            Bitmap bitmap = new Bitmap(@"data\\mnist\\2_58.bmp");

            this.pictureBox1.Image = bitmap;


            BoltzmannPattern pattern = new BoltzmannPattern();

            pattern.InputNeurons = bitmap.Width * bitmap.Height;
            BasicNetwork   network = pattern.Generate();
            BoltzmannLogic logic   = (BoltzmannLogic)network.Logic;

            //CreateCities();
            CalculateWeights(network);
        }
Example #2
0
        public void CalculateWeights(BasicNetwork network)
        {
            int    n1, n2, n3, n4;
            int    i, j;
            int    predN3, succN3;
            double weight;

            BoltzmannLogic logic = (BoltzmannLogic)network.Logic;

            for (n1 = 0; n1 < _bitmap.Height; n1++)
            {
                for (n2 = 0; n2 < _bitmap.Width; n2++)
                {
                    i = n1 * _bitmap.Height + n2;
                    for (n3 = 0; n3 < _bitmap.Height; n3++)
                    {
                        for (n4 = 0; n4 < _bitmap.Width; n4++)
                        {
                            j      = n3 * _bitmap.Height + n4;
                            weight = 0;
                            if (i != j)
                            {
                                predN3 = (n3 == 0 ? _bitmap.Width - 1 : n3 - 1);
                                succN3 = (n3 == _bitmap.Width - 1 ? 0 : n3 + 1);
                                if ((n1 == n3) || (n2 == n4))
                                {
                                    weight = -gamma;
                                }
                                else if ((n1 == predN3) || (n1 == succN3))
                                {
                                    weight = -distance[n2][n4];
                                }
                            }
                            logic.ThermalSynapse.WeightMatrix[i, j] = weight;
                        }
                    }
                    logic.ThermalLayer.BiasWeights[i] = (-gamma / 2);
                }
            }
        }