Exemple #1
0
        public static Function GetEvalFunction(NeuralNetworkEvalFunction lossFunction, Function calculatedOutputs, Variable outputVariable)
        {
            switch (lossFunction)
            {
            case NeuralNetworkEvalFunction.CrossEntropyWithSoftmax: return(CNTKLib.CrossEntropyWithSoftmax(calculatedOutputs, outputVariable));

            case NeuralNetworkEvalFunction.ClassificationError: return(CNTKLib.ClassificationError(calculatedOutputs, outputVariable));

            case NeuralNetworkEvalFunction.SquaredError: return(CNTKLib.SquaredError(calculatedOutputs, outputVariable));

            case NeuralNetworkEvalFunction.MeanAbsoluteError: return(NetworkBuilder.MeanAbsoluteError(calculatedOutputs, outputVariable));

            case NeuralNetworkEvalFunction.MeanAbsolutePercentageError: return(NetworkBuilder.MeanAbsolutePercentageError(calculatedOutputs, outputVariable));

            default:
                throw new InvalidOperationException("Unexpected " + lossFunction);
            }
        }
Exemple #2
0
    public static Tensor GetEvalFunction(NeuralNetworkEvalFunction lossFunction, Tensor labels, Tensor calculatedOutputs)
    {
        switch (lossFunction)
        {
        case NeuralNetworkEvalFunction.sigmoid_cross_entropy_with_logits: return(tf.reduce_mean(tf.nn.sigmoid_cross_entropy_with_logits(labels, calculatedOutputs)));

        case NeuralNetworkEvalFunction.softmax_cross_entropy_with_logits: return(tf.reduce_mean(tf.nn.softmax_cross_entropy_with_logits(labels, calculatedOutputs)));

        case NeuralNetworkEvalFunction.softmax_cross_entropy_with_logits_v2: return(tf.reduce_mean(tf.nn.softmax_cross_entropy_with_logits_v2(labels, calculatedOutputs)));

        case NeuralNetworkEvalFunction.ClassificationError: return(NetworkBuilder.ClassificationError(calculatedOutputs, labels));

        case NeuralNetworkEvalFunction.MeanSquaredError: return(MeanSquaredError(labels, calculatedOutputs));

        case NeuralNetworkEvalFunction.MeanAbsoluteError: return(NetworkBuilder.MeanAbsoluteError(calculatedOutputs, labels));

        case NeuralNetworkEvalFunction.MeanAbsolutePercentageError: return(NetworkBuilder.MeanAbsolutePercentageError(calculatedOutputs, labels));

        default:
            throw new InvalidOperationException("Unexpected " + lossFunction);
        }
    }