Для вычисления производной второго порядка вы можете использовать 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)
, эквивалент Keras отсутствуетtf.hessians
.