@Override public void evalTimeSeries(INDArray labels, INDArray predictions, INDArray labelsMask) { Pair<INDArray, INDArray> pair = EvaluationUtils.extractNonMaskedTimeSteps(labels, predictions, labelsMask); INDArray labels2d = pair.getFirst(); INDArray predicted2d = pair.getSecond(); eval(labels2d, predicted2d); }
private static void eval(INDArray labels, INDArray p, INDArray outMask, StringBuilder sb) { Pair<INDArray, INDArray> pair = EvaluationUtils.extractNonMaskedTimeSteps(labels, p, outMask); INDArray realOutcomes = pair.getFirst(); INDArray guesses = pair.getSecond(); // Length of real labels must be same as length of predicted labels if (realOutcomes.length() != guesses.length()) throw new IllegalArgumentException( "Unable to evaluate. Outcome matrices not same length"); INDArray guessIndex = Nd4j.argMax(guesses, 1); INDArray realOutcomeIndex = Nd4j.argMax(realOutcomes, 1); int nExamples = guessIndex.length(); for (int i = 0; i < nExamples; i++) { int actual = (int) realOutcomeIndex.getDouble(i); int predicted = (int) guessIndex.getDouble(i); sb.append(actual + "\t" + predicted + "\n"); } } }
private void eval(INDArray labels, INDArray p, INDArray outMask, StringBuilder sb) { Pair<INDArray, INDArray> pair = EvaluationUtils.extractNonMaskedTimeSteps(labels, p, outMask); INDArray realOutcomes = pair.getFirst(); INDArray guesses = pair.getSecond(); // Length of real labels must be same as length of predicted labels if (realOutcomes.length() != guesses.length()) throw new IllegalArgumentException( "Unable to evaluate. Outcome matrices not same length"); INDArray guessIndex = Nd4j.argMax(guesses, 1); INDArray realOutcomeIndex = Nd4j.argMax(realOutcomes, 1); int nExamples = guessIndex.length(); for (int i = 0; i < nExamples; i++) { int actual = (int) realOutcomeIndex.getDouble(i); int predicted = (int) guessIndex.getDouble(i); sb.append( vectorize.getTagset()[actual] + "\t" + vectorize.getTagset()[predicted] + "\n"); } }