【问题标题】:Calculate prediction derivation in own loss function在自己的损失函数中计算预测导数
【发布时间】:2019-05-17 05:15:27
【问题描述】:

除了 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 来区分

非常感谢, 最大

【问题讨论】:

标签: tensorflow machine-learning keras loss-function


【解决方案1】:

要计算二阶导数,您可以使用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。

【讨论】:

  • @Schaefma3 请不要使用 cmets 空间发布代码(它实际上是不可读的!)或进行如此长的说明 - 编辑和更新您的问题!
猜你喜欢
  • 2021-08-08
  • 1970-01-01
  • 2021-12-08
  • 1970-01-01
  • 1970-01-01
  • 2019-07-20
  • 2020-04-06
  • 1970-01-01
  • 2019-11-17
相关资源
最近更新 更多