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 &amp; \quad d &lt; 0 \\
            \sum_{i=1}^{n} e^{\frac{d_i}{13}}-1 &amp; \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 d&lt;0:
                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.Tensor as a Python bool is not
  allowed. " "Use if t is not None: instead of if t: to test if a "
  "tensor is defined, and use TensorFlow ops such as "
  
  TypeError: Using a tf.Tensor as a Python bool is not allowed. Use
  if t is not None: instead of if 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.
I'm assuming y_true and y_pred both are vectors. You are trying to apply a conditional on the value of a tensor. The library is telling you that it is not possible (tf.Tensor as Python bool).

You may want to check tensorflow control flow operations like tensorflow.equal