Example #1
0
        public override void Update(NDArray labels, NDArray preds)
        {
            if (labels == null)
            {
                throw new ArgumentNullException(nameof(labels));
            }
            if (preds == null)
            {
                throw new ArgumentNullException(nameof(preds));
            }

            Logging.CHECK_EQ(labels.GetShape().Count, 1);

            var len       = labels.GetShape()[0];
            var predData  = new mx_float[len];
            var labelData = new mx_float[len];

            preds.ArgmaxChannel().SyncCopyToCPU(predData);
            labels.SyncCopyToCPU(labelData);

            for (var i = 0; i < len; ++i)
            {
                this.SumMetric += Math.Abs(predData[i] - labelData[i]) < float.Epsilon ? 1 : 0;
                this.NumInst   += 1;
            }
        }