public ConvolutionalLayer(int mapsCount, int mapWidth, int mapHeight, int inputsPerNeuron, KernelParams kernel) { // инициализаци¤ вручную. —оздаетс¤ пустой слой, затем карты признаков и из них копируютс¤ ссылки на нейроны и весы самого сло¤ FeatureMaps = new FeatureMap[mapsCount]; Neurons = new Neuron[mapWidth*mapHeight*mapsCount]; Weights = new Weight[inputsPerNeuron*mapsCount]; for (int fi = 0, w = 0, n = 0; fi < FeatureMaps.Length; fi++) { // создаем очередную карту признаков - 2D слой FeatureMaps[fi] = new FeatureMap(mapWidth, mapHeight, inputsPerNeuron); // заполн¤ем из новой карты признаков основные массивы сло¤ - нейроны и веса foreach (var neuron in FeatureMaps[fi].Neurons) Neurons[n++] = neuron; foreach (var weight in FeatureMaps[fi].Weights) Weights[w++] = weight; } _kernel = kernel; }