Пример #1
0
        public override float Score(float[] input, PostScoreAction action = null)
        {
            var remainder = Remainder(input);
            var error     = Norm1Thresh(remainder, threshold: threshold) / input.Length;

            if (action != null)
            {
                action(this, input, error, remainder);
            }

            return(error);
        }
Пример #2
0
        static float GetScore(BlockedImage image, Kernel kernel, PostScoreAction action = null)
        {
            var   blocks = image.Blocks;
            float score  = float.MaxValue;

            for (int i = 0; i < blocks.Length; i++)
            {
                var block = blocks[i];

                float error = kernel.Score(block, action);
                score = Math.Min(score, error);
            }

            return(score);
        }
Пример #3
0
        public virtual float Score(float[] input, PostScoreAction action = null)
        {
            var remainder = Remainder(input);

            //var error = NormInf(remainder);
            //var error = Norm1(remainder) / input.Length;
            var error = Norm1Thresh(remainder) / input.Length;

            if (action != null)
            {
                action(this, input, error, remainder);
            }

            return(error);
        }