Beispiel #1
0
        public double RunEpoch(double[][] input)
        {
            double error = 0.0;

            double[][] data = new double[input.Length][];

            for (int i = 0; i < data.Length; i++)
            {
                data[i] = (double[])input[i].Clone();
            }

            for (int i = 0; i < rbm_learnings.Length; i++)
            {
                Console.WriteLine(i);

                RBMLayer rbm = dbn.Layers[i];

                rbm_learnings[i] = new RBMLearning(rbm);

                for (int j = 0; j < epoch; j++)
                {
                    rbm_learnings[i].RunEpoch(data);
                }

                for (int j = 0; j < input.Length; j++)
                {
                    data[j] = rbm.ComputeDown(data[j]);
                }
            }

            return(error);
        }
Beispiel #2
0
        public RBMLearning(RBMLayer rbm)
        {
            this.rbm = rbm;

            Q = new double[rbm.InputsCount];
            P = new double[rbm.NeuronsCount];

            random = new Random((int)DateTime.Now.Ticks);
        }
 public DBNNetwork(IActivationFunction function, int inputsCount, params int[] neuronsCount)
     : base(inputsCount, neuronsCount.Length)
 {
     for (int i = 0; i < LayersCount; i++)
     {
         layers[i] = new RBMLayer(
             neuronsCount[i],
             (i == 0) ? inputsCount : neuronsCount[i - 1],
             function);
     }
 }