2017-11-25 223 views
-1

模型培訓之後我如何預測和評估我的指標?
代碼是這樣的:在Keras中預測和評估指標

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

如果它幫助,那麼請接受答案 – DAXaholic

回答

2

在你的第一個代碼的問題是,你首先預測的輸出與您的模型,然後使用這個結果pred作爲地面實況供試品,讓你當然會擁有1.0

的精度爲test_on_batch方法見signature

test_on_batch(self, x, y, sample_weight=None) 

所以我不能測試它自己y的ou,因爲您只顯示了部分代碼(例如我不知道你的地面實況來自),但嘗試這樣的事情,也就是直接刪除,因爲它是內部爲你在做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) 
+0

test_on_batch方法不會返回預測,因爲我需要預測和指標......這就是爲什麼我也使用預測的原因 – leoScomme

+0

是的,沒關係,但不要將您的預測作爲基礎事實傳遞,因爲這是錯誤的(您認爲自己的acc = 1.0) – DAXaholic

+0

好的,所以解決方案是你的,但如果我想要預測,我也必須添加預測方法,對不對? – leoScomme