Example #1
0
 //Constructor de capa
 public RedNeuronalCapa(int nNodosPadre, int nNodos, int nNodosHijo)
 {
     numeroDeNodos      = nNodos;
     numeroDeNodosPadre = nNodosPadre;
     numeroDeNodosHijo  = nNodosHijo;
     capaPadre          = null;
     capaHija           = null;
 }
Example #2
0
    public RedNeuronal(int nNodosInput, int nNodosOcultos, int nNodosOutput)
    {
        capaEntrada = new RedNeuronalCapa(0, nNodosInput, nNodosOcultos);
        capaOculta  = new RedNeuronalCapa(nNodosInput, nNodosOcultos, nNodosOutput);
        capaSalida  = new RedNeuronalCapa(nNodosOcultos, nNodosOutput, 0);

        capaEntrada.Inicializar(nNodosInput, null, capaOculta);
        capaOculta.Inicializar(nNodosOcultos, capaEntrada, capaSalida);
        capaSalida.Inicializar(nNodosOutput, capaOculta, null);

        capaEntrada.AsignarPesosAleatorios();
        capaOculta.AsignarPesosAleatorios();
    }
Example #3
0
    //Dependiendo de los valores recibidos, te ordena las capa
    public void Inicializar(int nNodos, RedNeuronalCapa padre, RedNeuronalCapa hija)
    {
        numeroDeNodos = nNodos;

        valoresNeuronas = new float[nNodos];
        valoresDeseados = new float[nNodos];
        errores         = new float[nNodos];

        if (padre != null)
        {
            capaPadre          = padre;
            numeroDeNodosPadre = padre.numeroDeNodos;
        }
        else
        {
            capaPadre          = null;
            numeroDeNodosPadre = 0;
        }

        if (hija != null)
        {
            capaHija          = hija;
            numeroDeNodosHijo = hija.numeroDeNodos;
            pesos             = new float[numeroDeNodos, numeroDeNodosHijo];
            pesosIncremento   = new float[numeroDeNodos, numeroDeNodosHijo];
            biasValores       = new float[numeroDeNodosHijo];
            biasPesos         = new float[numeroDeNodosHijo];
        }
        else
        {
            capaHija          = null;
            numeroDeNodosHijo = 0;
            pesos             = null;
            pesosIncremento   = null;
            biasValores       = null;
            biasPesos         = null;
        }

        for (int i = 0; i < numeroDeNodos; i++)
        {
            valoresNeuronas[i] = 0;
            valoresDeseados[i] = 0;
            errores[i]         = 0;
        }

        if (hija != null)
        {
            for (int i = 0; i < numeroDeNodos; i++)
            {
                for (int j = 0; j < numeroDeNodosHijo; j++)
                {
                    pesos[i, j]           = 0;
                    pesosIncremento[i, j] = 0;
                }
            }

            for (int j = 0; j < numeroDeNodosHijo; j++)
            {
                biasValores[j] = -1;
                biasPesos[j]   = 0;
            }
        }
    }