在模型培训之后,我如何预测和评估我的指标? 代码是这样的:
for patch in generator():
pred = model.predict(np.array(patch, dtype=patch.dtype))
loss_val_partial,accuracy_val_partial = model.test_on_batch(np.array(patch, dtype=patch.dtype),pred)
或者像这样:
for patch in generator():
pred = model.predict(np.array(patch, dtype=patch.dtype))
loss_val_partial,accuracy_val_partial = model.test_on_batch(ground_truth,pred)
其中基本事实是补丁的真正标签。
我认为第一个是正确的,因为准确性总是1.0
答案 0 :(得分:2)
您的第一个代码清单中的问题是,您首先使用模型预测输出,然后使用此结果pred
作为测试的基本事实,这样您的准确度当然会为1.0 < / p>
test_on_batch
方法见signature:
test_on_batch(self, x, y, sample_weight=None)
所以我不能为你自己测试它,因为你只显示了一部分代码(例如我不知道你的基本事实来自哪里)但尝试这样的事情,即只需删除手动预测步骤它是在test_on_batch
内部为您完成的:
for patch in generator():
loss_val_partial,accuracy_val_partial = model.test_on_batch(np.array(patch, dtype=patch.dtype), ground_truth)