【发布时间】:2018-08-07 14:01:20
【问题描述】:
如果我查看keras metric,我会发现y_true 和y_predict 的值在每个时期结束时与categorical_accuracy 进行比较:
def categorical_accuracy(y_true, y_pred):
return K.cast(K.equal(K.argmax(y_true, axis=-1),
K.argmax(y_pred, axis=-1)),
K.floatx())
如何处理掩码值?如果我理解正确,屏蔽会禁止屏蔽值影响训练,但它仍然会产生对屏蔽值的预测。因此,在我看来,它确实会影响指标。
关于它如何影响指标的更多解释:
在填充/屏蔽过程中,我将y_true 中的填充/屏蔽值设置为未使用的类,例如类0。
如果现在argmax() 正在单热编码的y_true 中寻找最大值,则它只会返回 0,因为总(屏蔽)行是相同的。
我没有 0 类,因为它是我的掩码值/类,因此 y_pred 和 y_true 肯定具有不同的值,从而降低了准确性。
Keras 指标中是否已经考虑到这一点并且我监督了它?
否则,我将不得不创建一个自定义指标或回调,创建与categorical_accuracy 类似的指标,并在比较之前消除y_pred 和y_true 中的所有屏蔽值。
【问题讨论】:
标签: python tensorflow keras metrics