Custom conditional Keras metric
I am trying to create the following metric for my neural network using keras
$$ s = \left\{ \begin{array}{ll} \sum_{i=1}^{n} e^{\frac{-d_i}{10}}-1 \quad d 0 \\ \sum_{i=1}^{n} e^{\frac{d_i}{13}}-1 \quad d \geq 0 \end{array} \right. $$ where $d_i=y_{pred}-y_{true}$
and both $y_{pred}$ and $y_{true}$ are vectors
With the following code:
import keras.backend as K
    def score(y_true, y_pred):
            d=(y_pred - y_true)
            if d0:
                return K.exp(-d/10)-1
            else:
                return K.exp(d/13)-1
For the use of compiling my model:
model.compile(loss='mse', optimizer='adam', metrics=[score])
I received the following error code and I have not been able to correct the issue. Any help would be appreciated.
raise TypeError("Using a
tf.Tensoras a Pythonboolis not allowed. " "Useif t is not None:instead ofif t:to test if a " "tensor is defined, and use TensorFlow ops such as "TypeError: Using a
tf.Tensoras a Pythonboolis not allowed. Useif t is not None:instead ofif t:to test if a tensor is defined, and use TensorFlow ops such as tf.cond to execute subgraphs conditioned on the value of a tensor.
Topic keras tensorflow neural-network python machine-learning
Category Data Science