/// <summary> /// Инициализация слоёв нейронной сети. /// </summary> /// <param name="listOfPicturesmatrix">Список матриц изображений.</param> /// <param name="layers">Список слоёв.</param> /// <param name="filterCore">Ядро фильтра.</param> /// <param name="inputLayerNeurons">Нейроны выходного слоя.</param> /// <param name="convolutionalLayerNeurons">Нейроны свёрточного слоя.</param> /// <param name="hiddenLayerNeurons">Нейроны скрытого слоя.</param> /// <param name="outputNeuron">Нейроны выходного слоя.</param> private static void LayersInitialize(List <double[, ]> listOfPicturesmatrix, List <Layer> layers, double[,] filterCore, out Dictionary <string, double> inputLayerNeurons, out List <NeuronModel> convolutionalLayerNeurons, out List <NeuronModel> hiddenLayerNeurons, out NeuronModel outputNeuron) { var firstDataSet = listOfPicturesmatrix.First(); var inputLayer = new InputLayer(firstDataSet); inputLayer.Initialize(); layers.Add(inputLayer); inputLayerNeurons = inputLayer.GetLayerNeurons(); var convolutionalLayer = new ConvolutionalLayer(inputLayerNeurons); convolutionalLayer.Initialize(filterCore); layers.Add(convolutionalLayer); convolutionalLayerNeurons = convolutionalLayer.GetLayerNeurons(); var hiddenLayer = new HiddenLayer(convolutionalLayerNeurons); hiddenLayer.Initialize(); layers.Add(hiddenLayer); hiddenLayerNeurons = hiddenLayer.GetLayerNeurons(); var outputLayer = new OutputLayer(hiddenLayerNeurons); outputLayer.Initilize(); layers.Add(outputLayer); outputNeuron = outputLayer.GetOutputNeuron(); }