[英]Custom loss function with gradient
我创建了一个自定义损失 function,它还计算真实标签和预测标签的梯度之间的均方误差。 function 如下所示。 但是,在调试代码时,我发现 uxp 和 uxt 是列表而不是张量。 我在计算梯度时做错了吗?
def custom_mean_squared_error(y_true, y_pred):
mse = K.mean(K.square(y_pred - y_true), axis=-1)
# gradient
xs = tf.ones_like(y_pred)
uxp = tf.gradients(y_pred, xs)
uxt = tf.gradients(y_true, xs)
grad_mse = K.mean(K.square(uxp - uxt), axis=-1)
mse1 = mse + grad_mse
return mse1
谢谢你。
是的,不能在 Python 中减去列表(尝试 [1,2,3] - [-1,-2,-3])。 是的, tf.gradients
应该返回张量列表(参见文档https://www.tensorflow.org/api_docs/python/tf/gradients )。 您可以尝试列表推导来实现减法。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.