预测并评估Keras的指标

时间:2017-11-25 11:45:17

标签: python keras artificial-intelligence

在模型培训之后,我如何预测和评估我的指标? 代码是这样的:

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

1 个答案:

答案 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)