计算自身损失函数中的预测推导

时间:2018-12-16 18:04:31

标签: tensorflow machine-learning keras loss-function

除了y_true和y_predict的MSE外,我还想在成本函数中使用y_true的二阶导数,因为我的模型当前非常动态。假设我有y_predicted(256,100,1)。第一维对应于样本(每个样本之间的delta_t为0.1s)。现在,我想通过第一个维度进行区分,即

diff(diff(y_predicted[1, :, 1]))/delta_t**2

针对y_predictied中的每一行(0-dim)。

注意,我只想使用y_predicted和delta_t进行区分

非常感谢你, 最高

1 个答案:

答案 0 :(得分:0)

要计算二阶导数,可以使用tf.hessians,如下所示:

x = tf.Variable([7])
x2 = x * x
d2x2 = tf.hessians(x2, x)

评估d2x2产量:

[array([[2]], dtype=int32)]

您可以的话

loss += lam_l1 * tf.hessians(y_pred, xs)

其中xs是您要区分的张量。

如果您希望直接使用Keras,则可以链接两次keras.backend.gradients(loss, variables),没有与tf.hessians等效的Keras。