AdvancedOCR.SubsamplingWeights.PropogateError C# (CSharp) Method

PropogateError() protected method

protected PropogateError ( RectangularStep downstream, RectangularStep upstream, int downstreamX, int downstreamY ) : void
downstream RectangularStep
upstream RectangularStep
downstreamX int
downstreamY int
return void
        protected void PropogateError(RectangularStep downstream, RectangularStep upstream, int downstreamX, int downstreamY)
        {
            int downstreamIndex = downstreamY * downstream.Width + downstreamX;
            int upstreamIndex = (downstreamY * Height * upstream.Width) + downstreamX * Width;

            double downstreamErrorDerivative = downstream.ErrorDerivative[downstreamIndex];
            double upstreamError = Weight * downstreamErrorDerivative;
            double weightError = 0.0;

            for (int y = 0; y < Height; y++)
            {
                for (int x = 0; x < Width; x++)
                {
                    upstream.ErrorDerivative[upstreamIndex] = upstreamError;

                    double weightErrorGradient = downstreamErrorDerivative * upstream.Output[upstreamIndex];
                    weightError += weightErrorGradient;

                    upstreamIndex += 1;
                }
                upstreamIndex += upstream.Width - Width;
            }
            Weight -= weightError * WeightStepSize;
        }

Same methods

SubsamplingWeights::PropogateError ( RectangularStep downstream, int mapNumber ) : void