我正在尝试使用DL4J进行深度学习,并提供了带有标签的训练数据。然后,我尝试通过分配一个虚拟标签来发送测试数据。如果不提供虚拟标签,它会产生运行时错误。我不明白为什么我们需要给测试数据分配标签。
另外,我想知道预测的准确性是多少。根据我在dl4j文档中看到的,生成了一个称为混淆矩阵的东西。我理解这只是让我们了解训练数据对系统的训练效果如何。有没有办法在测试数据上获得预测的准确性?由于我们为测试数据提供了一个虚拟标签,我觉得混淆矩阵也没有正确生成。
发布于 2018-10-16 19:52:08
首先,如果您不知道正确的标签是什么,如何测试网络是否输出了正确的标签?在训练和测试时,你应该总是有一个标签,因为这样你就可以断言输出是否正确。
第二个问题,我在dl4j网页上找到了这个:
Evaluation eval = new Evaluation(3);
INDArray output = model.output(testData.getFeatures());
eval.eval(testData.getLabels(), output);
log.info(eval.stats());据称,此.stats()方法显示混淆矩阵条目(每行一个)、准确度、精确度、召回率和F1分数。此外,评估类还可以计算并返回以下值:
Confusion Matrix
False Positive/Negative Rate
True Positive/Negative
Class Counts
F-beta, G-measure, Matthews Correlation Coefficient and more我希望这对你有帮助。
发布于 2018-10-19 00:15:49
您可以在此处的DL4J开发人员社区中找到可以回答您的问题的人:https://gitter.im/deeplearning4j/deeplearning4j/tuninghelp
https://stackoverflow.com/questions/52828788
复制相似问题