У меня есть пользовательская точность бэкенда keras, которая возвращает количество равных пикселей. Однако при использовании K.equal некоторые пиксели, которые близки, но не точны, не учитываются. Это означает, что даже когда у меня точное совпадение, из-за интенсивности пикселя точность составляет 92%, когда точность близка к 100%.
Равные значения возвращают true для точного соответствия, но я хочу, чтобы оно возвращало true когда оба равны нулю или не равны нулю.
def custom_acc(y_true, y_pred):
flat = K.cast(K.flatten(y_true), 'float32')
length = K.cast(K.shape(flat), 'float32')
return (K.sum(K.cast(K.equal(y_true, y_pred), 'float32')))/length
РЕДАКТИРОВАТЬ: Чтобы уточнить, точное совпадение означает, что полоса обнаружена в нужном месте, но может не иметь правильного значения пикселя. При просмотре выходных данных иногда значения пикселей находятся в пределах 5 пикселей и выглядят одинаково, но не считаются совпадением.