Ejemplo n.º 1
0
 public LayerEventArgs(UniqueLayer lay)
 {
     layer = lay;
 }
Ejemplo n.º 2
0
        /// <summary>
        /// Funkcja przeznaczona do tworzenia nowej sieci warstwowej algortymem kafelkowym
        /// </summary>
        /// <param name="iterations">
        /// Maksymalna liczba iteracji do uczenia perceptronów
        /// </param>
        /// <param name="learningConstant">
        /// Stała uczenia
        /// </param>
        public void createNetwork(int iterations, double learningConstant)
        {
            // Tworzy warstwy aż do momentu otrzymania poprawnej weryfikacji
            do
            {
                UniqueLayer layer;

                // Tworzy nową warstwę
                if (layers.Count == 0)
                {
                    // Przekazuje nowej warstwie pierwotny zbiór przykładów uczących
                    layer = new UniqueLayer(inputDimension, iterations, learningConstant, examples, perceptronCreated);
                }
                else
                {
                    // Przekazuje nowej warstwie zbiór przykładów uczących
                    // zwrócony przez warstwę poprzednią
                    layer = new UniqueLayer(layers[layers.Count - 1].OutputDimension,
                        iterations, learningConstant, layers[layers.Count - 1].NextExamples,
                        perceptronCreated);

                }

                // Dodaje warstwę do listy
                layers.Add(layer);

                // Wywołuje zdarzenie utworzenia warstwy
                if (OnLayerCreated != null) OnLayerCreated(this, new LayerEventArgs(layer));
            }
            while (verify() == false); // Weryfikuje sieć

            // Wywołuje zdarzenie utworzenia sieci
            if (OnNetworkCreated != null) OnNetworkCreated(this, new NetworkEventArgs(this));
        }