Dans Keras, j'essaie de comprendre comment calculer une métrique ou une perte personnalisée qui filtre ou masque certaines valeurs afin qu'elles ne contribuent pas à la valeur retournée. Je suis bloqué sur comment obtenir une tranche tensorielle ou comment itérer avec un if: sur les valeurs du tenseur pour sélectionner les valeurs d'intérêt. Il se trouve que j'utilise le backend Tensorflow mais que je voudrais faire quelque chose de portable.Comment écrire une métrique personnalisée Keras qui filtre ou masque certaines valeurs?
Ci-joint une esquisse de ce que je suis en train de faire, mais il jette l'erreur: TypeError: 'Tensor' object does not support item assignment
def my_filtered_mse(y_true, y_pred):
#Return Mean Squared Error for a subset of values
error = y_pred - y_true
error[y_true == 0.0] = 0 #Don't include errors when y_true is zero
# The previous like throws the error : TypeError: 'Tensor' object does not support item assignment
return K.mean(K.square(error))
#...other stuff ...
model.compile(optimizer=optimizers.adam(),
loss='mean_squared_error',
metrics=[my_filtered_mse])