示例#1
0
        public double[,,] BackPropagation(double[,,] dy)
        {
            var dx = new double[Inputs.GetLength(0), Inputs.GetLength(1), Inputs.GetLength(2)];

            for (int f = 0; f < Filters.Count; f++)
            {
                var dyForLayerF = dy.GetLayer(f).To3DArray();
                var dw          = Convolution(dyForLayerF);
                var dxTemp      = ReverseConvolution(dy, Filters[f]);

                Filters[f] = Filters[f].Plus(dw, Epsilon);
                dx         = dx.Plus(dxTemp);
            }

            return(dx);
        }