我使用Keras生物医学图像分割技术来分割大脑神经元。我使用model.evaluate()
它给了我骰子系数:0.916。但是,当我使用model.predict()
,然后通过计算Dice系数遍历预测图像时,Dice系数为0.82。为什么这两个值不同?
最佳答案
问题在于,Keras
中的每个指标都是按以下方式评估的:
对于每个batch
,都会评估一个指标值。
当前的损失值(在k
批次之后等于您在计算的k
批次之间度量的平均值)。
获得的最终结果是所有批次计算的所有损失的平均值。
作为每个示例的损失值的平均值,大多数最受欢迎的度量标准(例如mse
,categorical_crossentropy
,mae
)等具有这样的属性,即这样的评估最终会得到正确的结果。但是,在骰子系数的情况下-所有批次中其平均值的平均值不等于在整个数据集上计算出的实际值,并且model.evaluate()
使用这种计算方式-这是造成问题的直接原因。
关于machine-learning - Keras model.evaluate()和model.predict()有什么区别?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/44476706/