![](/img/trans.png)
[英]Issue on custom loss function with Keras with TensorFlow backend
[英]Keras/Tensorflow custom loss function
我有一个用Keras构建的神经网络,正在尝试训练。 输出层有4个节点。 对于我要解决的问题,我只想基于真实值在单个输出节点上计算梯度。 基本上,y_true看起来像这样[0,0,2,0],其中零表示应该忽略的节点。 但是y_pred的格式为[1.2,3.2,4.5,6]。 我想使它只在mse中考虑第三个索引。 这将要求我将y_pred中的索引0、1和3归零。 我还没有找到合适的方法来做到这一点。
下面是我尝试过的代码,但是它从损失函数返回NaN。
def custom_mse(y_true, y_pred):
return K.mean(K.square(tf.truediv(y_pred*y_true,y_true)-y_pred), axis=-1)
有没有办法在这些Tensor对象上执行此简单操作?
这样做是这样的:
[1.2,3.2,4.5,6]*[0,0,2,0] = [0,0,9,0]
[0,0,9,0]/2 = [0,0,4.5,0]
然后正常继续。
这是执行此操作的代码:
def custom_mse(y_true, y_pred):
return K.mean(K.square(tf.divide(tf.multiply(y_pred, y_true),tf.reduce_max(y_true))-y_true), axis=-1)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.