之間的區別我使用keras生物醫學圖像分割來分割大腦神經元。我用model.evaluate()
它給了我Dice coef:0.916
,但是,當我使用model.predict然後通過計算Dice係數循環預測圖像時,Dice係數是0.82
。 有什麼想法?keras model.evaluate()和model.predict()
感謝
之間的區別我使用keras生物醫學圖像分割來分割大腦神經元。我用model.evaluate()
它給了我Dice coef:0.916
,但是,當我使用model.predict然後通過計算Dice係數循環預測圖像時,Dice係數是0.82
。 有什麼想法?keras model.evaluate()和model.predict()
感謝
的keras.evaluate()
功能會給你的每一批損耗值。 keras.predict()
函數將爲您提供所有批次中所有樣品的實際預測值。所以,即使你使用相同的數據,差異也會存在,因爲損失函數的值幾乎總是與預測值不同。這是兩件不同的事情。
問題在於以下事實:在每Keras
度量以下面的方式進行評價:
batch
一個度量值進行評估。k
批次之後等於計算的k
批次上的指標的平均值)。大多數最流行的指標(如mse
,categorical_crossentropy
,mae
)等 - 作爲各實施例的損耗值的平均值 - 具有這樣的評價用正確的結果結束了的性質。但是在Dice係數的情況下 - 所有批次的平均值不等於整個數據集上計算出的實際值,因爲model.evaluate()
使用這種計算方式 - 這是問題的直接原因。
請分享您的數據,您的代碼和您的火車/驗證/測試分割的更多細節。 – petezurich