package org.deeplearning4j.eval; import org.nd4j.linalg.api.ndarray.INDArray; import org.nd4j.shade.jackson.annotation.JsonSubTypes; import org.nd4j.shade.jackson.annotation.JsonTypeInfo; import java.io.Serializable; import java.util.List; /** * A general purpose interface for evaluating neural networks - methods are shared by implemetations such as * {@link Evaluation}, {@link RegressionEvaluation}, {@link ROC}, {@link ROCMultiClass} * * @author Alex Black */ @JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.WRAPPER_OBJECT) @JsonSubTypes(value = { @JsonSubTypes.Type(value = Evaluation.class, name = "evaluation"), @JsonSubTypes.Type(value = EvaluationBinary.class, name = "evaluationbinary"), @JsonSubTypes.Type(value = RegressionEvaluation.class, name = "regressionevaluation"), @JsonSubTypes.Type(value = ROC.class, name = "roc"), @JsonSubTypes.Type(value = ROCBinary.class, name = "rocbinary"), @JsonSubTypes.Type(value = ROCMultiClass.class, name = "rocmulti"), }) public interface IEvaluation<T extends IEvaluation> extends Serializable { /** * * @param labels * @param networkPredictions */ void eval(INDArray labels, INDArray networkPredictions); /** * * @param labels * @param networkPredictions * @param recordMetaData */ void eval(INDArray labels, INDArray networkPredictions, List<? extends Serializable> recordMetaData); /** * * @param labels * @param networkPredictions * @param maskArray */ void eval(INDArray labels, INDArray networkPredictions, INDArray maskArray); /** * * @param labels * @param predicted */ void evalTimeSeries(INDArray labels, INDArray predicted); /** * * @param labels * @param predicted * @param labelsMaskArray */ void evalTimeSeries(INDArray labels, INDArray predicted, INDArray labelsMaskArray); /** * * @param other */ void merge(T other); /** * */ void reset(); /** * * @return */ String stats(); /** * * @return */ String toJson(); /** * * @return */ String toYaml(); }