InitRandom() protected method

protected InitRandom ( int ninput, int nhidden, int noutput ) : void
ninput int
nhidden int
noutput int
return void
Ejemplo n.º 1
0
        public void ChangeHidden(int newn)
        {
            MlpClassifier temp    = new MlpClassifier();
            int           ninput  = w1.Dim(1);
            int           nhidden = w1.Dim(0);
            int           noutput = w2.Dim(0);

            temp.InitRandom(ninput, newn, noutput);
            for (int i = 0; i < newn; i++)
            {
                if (i >= nhidden)
                {
                    for (int j = 0; j < ninput; j++)
                    {
                        temp.w1[i, j] = ClassifierUtil.rNormal(0.0f, 1.0f);
                    }
                    temp.b1[i] = ClassifierUtil.rNormal(0.0f, 1.0f);
                }
                else
                {
                    for (int j = 0; j < ninput; j++)
                    {
                        temp.w1[i, j] = w1[i, j];
                    }
                    temp.b1[i] = b1[i];
                }
            }
            for (int i = 0; i < noutput; i++)
            {
                for (int j = 0; j < newn; j++)
                {
                    if (j >= nhidden)
                    {
                        temp.w2[i, j] = 1e-2f * ClassifierUtil.rNormal(0.0f, 1.0f);
                    }
                    else
                    {
                        temp.w2[i, j] = w2[i, j];
                    }
                }
            }
            this.Copy(temp);
        }
Ejemplo n.º 2
0
 public void ChangeHidden(int newn)
 {
     MlpClassifier temp = new MlpClassifier();
     int ninput = w1.Dim(1);
     int nhidden = w1.Dim(0);
     int noutput = w2.Dim(0);
     temp.InitRandom(ninput, newn, noutput);
     for (int i = 0; i < newn; i++)
     {
         if (i >= nhidden)
         {
             for (int j = 0; j < ninput; j++)
                 temp.w1[i, j] = ClassifierUtil.rNormal(0.0f, 1.0f);
             temp.b1[i] = ClassifierUtil.rNormal(0.0f, 1.0f);
         }
         else
         {
             for (int j = 0; j < ninput; j++)
                 temp.w1[i, j] = w1[i, j];
             temp.b1[i] = b1[i];
         }
     }
     for (int i = 0; i < noutput; i++)
     {
         for (int j = 0; j < newn; j++)
         {
             if (j >= nhidden)
             {
                 temp.w2[i, j] = 1e-2f * ClassifierUtil.rNormal(0.0f, 1.0f);
             }
             else
             {
                 temp.w2[i, j] = w2[i, j];
             }
         }
     }
     this.Copy(temp);
 }