我正在尝试使用 DL4J 进行深度学习,并提供了带有标签的训练数据。然后我试图通过分配一个虚拟标签来发送测试数据。如果不提供虚拟标签,则会出现运行时错误。我不明白为什么我们需要为测试数据分配标签。
另外,我想知道预测的准确性是多少。根据我在 dl4j 文档中看到的内容,生成了一种称为混淆矩阵的东西。我知道这只是让我们了解训练数据对系统的训练效果如何。有没有办法获得对测试数据的预测准确性?由于我们为测试数据提供了一个虚拟标签,我觉得混淆矩阵也没有正确生成。
问问题
163 次
2 回答
1
首先,如果您不知道正确的标签是什么,如何测试网络是否输出正确的标签?在训练和测试时你应该总是有一个标签,因为这样你就可以断言输出是否正确。
第二个问题,我在 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-16T11:52:07.880 回答
0
您可以在此处的 DL4J 开发社区中找到可以回答您问题的人:https ://gitter.im/deeplearning4j/deeplearning4j/tuninghelp
于 2018-10-18T16:15:49.297 回答