Ejemplo n.º 1
0
 public Neuronio(int nEntradas, Rede.FAtivação nF)
 {
     Pesos = new double[nEntradas];
     F = nF;
 }
Ejemplo n.º 2
0
        public static List<Rede> GeraRedesNeurais(List<PreRedeNeural> preRede,Teste nTeste)
        {
            Rede.FAtivação[] fs;
            if (nTeste.Bounds)
            {
             	fs = new Rede.FAtivação[2] { F1Bounds, F2 };
            }
            else
            {
                fs = new Rede.FAtivação[2] { F1, F2 };
            }
            List<Rede> r = new List<Rede>();

            foreach (PreRedeNeural prn in preRede)
            {
                r.Add(prn.GerarRedeNeural(fs));
            }
            return r;
        }
Ejemplo n.º 3
0
        public static List<Rede> GeraRedesNeurais(List<PreRedeNeural> preRede)
        {
            Rede.FAtivação[] fs = new Rede.FAtivação[2] { F1, F2 };
            List<Rede> r = new List<Rede>();

            foreach (PreRedeNeural prn in preRede)
            {
                //juntar padDentro com padFora
                //os primeiros neuronios representam pad dentro

                //qntd de entradas = qntd de variaveis
                //qntd de neuronios na primeira camada = qnd de planos
                //qntd de neuronios na segunda camada = qnd de padroes dentr+fora
                int[] camadas = new int[3] { prn.planos[0].VectorNormal.Length, prn.planos.Count, prn.padDentro.RowCount + prn.padFora.RowCount};
                Rede dummy = new Rede(camadas, fs);

                //preencher a primeira camada
                for (int neuronio = 0; neuronio < prn.planos.Count; neuronio++)
                {
                    dummy[0][neuronio].Pesos = (prn.planos[neuronio].VectorNormal.Scale(1/prn.planos[neuronio].d_2)).CopyToArray();
                    dummy[0][neuronio].PesoOffset = prn.planos[neuronio].bias / prn.planos[neuronio].d_2;
                }

                //preenchendo a segunda camada  paddentro
                double nentradasD = prn.padDentro.ColumnCount;

                for (int neuronio = 0; neuronio < prn.padDentro.RowCount; neuronio++)
                {
                    dummy[1][neuronio].Pesos = (prn.padDentro.GetRowVector(neuronio).Scale( 1/nentradasD)).CopyToArray();
                    dummy[1][neuronio].PesoOffset = 0;
                }

                //padfora
                double nentradasF = prn.padFora.ColumnCount;
                for (int neuronio = 0; neuronio < prn.padFora.RowCount; neuronio++)
                {
                    dummy[1][neuronio + prn.padDentro.RowCount].Pesos = (prn.padFora.GetRowVector(neuronio).Scale( 1/nentradasF)).CopyToArray();
                    dummy[1][neuronio + prn.padDentro.RowCount].PesoOffset = 0;
                }

                r.Add(dummy);
            }
            return r;
        }