Esempio n. 1
0
        /// <summary>
        /// Метод OpenNW открывает полносвязанную нейроную сеть
        /// </summary>
        /// <param name="fileName">Имя нейроной сети</param>
        public void OpenNW(String fileName)
        {
            byte[] binNW = File.ReadAllBytes(fileName);
            Int32  k     = 0;

            // Извлекаем количество слоев из массива
            CountLayers = ReadFromArrayInt(binNW, ref k);
            Layers      = new LayerNW[CountLayers];
            // Извлекаем размерность слоев
            Int32 CountY1 = 0;
            Int32 CountX1 = ReadFromArrayInt(binNW, ref k);

            // Размерность входа
            CountX = CountX1;
            // Выделяемпамять под выходы нейронов и дельта
            NETOUT    = new Double[CountLayers + 1][];
            NETOUT[0] = new Double[CountX1];
            DELTA     = new Double[CountLayers][];
            for (Int32 i = 0; i < CountLayers; i++)
            {
                CountY1   = ReadFromArrayInt(binNW, ref k);
                Layers[i] = new LayerNW(CountX1, CountY1);
                CountX1   = CountY1;
                // Выделяем память
                NETOUT[i + 1] = new Double[CountY1];
                DELTA[i]      = new Double[CountY1];
            }
            // Размерность выхода
            CountY = CountY1;
            // Извлекаем и записываем сами веса
            for (Int32 r = 0; r < CountLayers; r++)
            {
                for (Int32 p = 0; p < Layers[r].GetCountX; p++)
                {
                    for (Int32 q = 0; q < Layers[r].GetCountY; q++)
                    {
                        Layers[r][p, q] = ReadFromArrayDouble(binNW, ref k);
                    }
                }
            }
        }
Esempio n. 2
0
        Double[][] DELTA;   // NETOUT[countLayers][]

        /// <summary>
        /// Конструктор NeuralNW создает полносвязанную сеть из 1 слоя
        /// </summary>
        /// <param name="sizeX">Размерность вектора входных параметров</param>
        /// <param name="sizeY">Размерность вектора выходных параметров</param>
        public NeuralNW(Int32 sizeX, Int32 sizeY)
        {
            Layers    = new LayerNW[CountLayers = 1];
            Layers[0] = new LayerNW(sizeX, sizeY);
            Layers[0].GenerateWeights();
        }