protected override Delegate GetPredictedLabelGetter(Row output, out Delegate scoreGetter) { Host.AssertValue(output); Host.Assert(output.Schema == Bindings.RowMapper.OutputSchema); Host.Assert(output.IsColumnActive(Bindings.ScoreColumnIndex)); ValueGetter <VBuffer <Float> > mapperScoreGetter = output.GetGetter <VBuffer <Float> >(Bindings.ScoreColumnIndex); long cachedPosition = -1; VBuffer <Float> score = default(VBuffer <Float>); int scoreLength = Bindings.PredColType.GetKeyCount(); ValueGetter <uint> predFn = (ref uint dst) => { EnsureCachedPosition(ref cachedPosition, ref score, output, mapperScoreGetter); Host.Check(score.Length == scoreLength); int index = VectorUtils.ArgMax(in score); if (index < 0) { dst = 0; } else { dst = (uint)index + 1; } }; ValueGetter <VBuffer <Float> > scoreFn = (ref VBuffer <Float> dst) => { EnsureCachedPosition(ref cachedPosition, ref score, output, mapperScoreGetter); Host.Check(score.Length == scoreLength); score.CopyTo(ref dst); }; scoreGetter = scoreFn; return(predFn); }