我正在尝试使用DL4J进行深度学习,并为训练数据提供了标签。然后,我尝试通过分配虚拟标签来发送测试数据。如果不提供虚拟标签,则会出现运行时错误。我不明白为什么我们需要为测试数据分配标签。
另外,我想知道预测的准确性是什么。根据我在dl4j文档中所看到的,生成了一些称为混淆矩阵的东西。我了解这只是让我们了解训练数据对系统的训练程度。有没有办法提高测试数据预测的准确性?由于我们为测试数据提供了虚拟标签,因此我感到混乱矩阵也无法正确生成。
答案 0 :(得分: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
希望对您有帮助。
答案 1 :(得分:0)
您可能会在DL4J开发人员社区中找到可以回答您问题的人:ERC20 standard