设计定制的keras损失函数MSE

时间:2019-05-03 18:31:13

标签: keras mse

我想制作一个自定义MSE损失函数,该函数仅使用输出层中的一项。

我现在所拥有的是这个

def new_loss(y_true, y_pred):
   index_pred = K.argmax(K.abs(y_pred), axis = -1)
   pred = tf.gather(y_true, index_pred, axis = 1)

   index_true = K.argmin(K.abs(y_true), axis = -1)
   true = tf.gather(y_true, index_true, axis = 1)

   return K.mean(K.sqrt(K.square(K.log(pred)-K.log(true))))

但是它给出了错误,

An operation has `None` for gradient.

我一直在寻找,找不到适合我的情况的任何东西。

我正在使用Keras和Tensorflow作为后端。

谢谢。

编辑:

我尝试过

def new_loss(y_true, y_pred):
   index_pred = K.argmax(K.abs(y_pred), axis = -1)
   pred = tf.gather(y_pred, index_pred, axis = 1)

   index_true = K.argmin(K.abs(y_true), axis = -1)
   true = tf.gather(y_true, index_true, axis = 1)

   return K.mean(K.sqrt(K.square(K.log(pred)-K.log(true))))

它没有给出错误。因此问题不是K.argmax / K.argmin。

0 个答案:

没有答案