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); }
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); }
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); }