Я создаю собственную метрику для измерения точности одного класса в моем наборе данных мультикласса во время обучения. У меня проблемы с выбором класса.
Цели - одна горячая (например: метка класса 0 [1 0 0 0 0]:
from keras import backend as K
def single_class_accuracy(y_true, y_pred):
idx = bool(y_true[:, 0]) # boolean mask for class 0
class_preds = y_pred[idx]
class_true = y_true[idx]
class_acc = K.mean(K.equal(K.argmax(class_true, axis=-1), K.argmax(class_preds, axis=-1))) # multi-class accuracy
return class_acc
Проблема заключается в том, что мы должны использовать функции Keras для индексации тензоров. Как создать булевскую маску для тензора? Спасибо.