// Copyright (c) 2022, Apple Inc. All rights reserved.
//
// Use of this source code is governed by a BSD-3-clause license that can be
// found in LICENSE.txt or at https://opensource.org/licenses/BSD-3-Clause
syntax = "proto3";
option optimize_for = LITE_RUNTIME;
import public "DataStructures.proto";
package CoreML.Specification;
/* A model to filter classification labels by confidence thresholds.
*
* The model has one input:
* - A multi-array of type FP16, FP32, or FP64 and shape [C], where C
* is the number of classes.
*
* The model has one output:
* - A multi-array of type FP16, FP32, or FP64 and shape [2, C], where
* C is the number of classes. The values in [0, :] is the same as
* the confidence inputs. The values in [1, :] is either 0 or 1,
* where 1 means the class is present and 0 means it is not.
*
* Currently, the model simply takes all the classes.
*
* filteredClassConfidences[0, :] = classConfidences[:]
* filteredClassConfidences[1, :] = 1
*/
message ClassConfidenceThresholding {
/**
* The precision-recall curve for each class label.
*
* The field is optional. When it exists, the number of curves
* must match the number of class labels.
*/
repeated PrecisionRecallCurve precisionRecallCurves = 100;
}