Рассчитать вывод прогноза в собственной функции потерь - PullRequest
0 голосов
/ 16 декабря 2018

в дополнение к MSE y_true и y_predict я хотел бы использовать вторую функцию производной y_true в функции стоимости, потому что моя модель в настоящее время очень динамична.Предположим, у меня есть y_predicted (256, 100, 1).Первое измерение соответствует выборкам (delta_t между каждой выборкой составляет 0,1 с).Теперь я хотел бы провести различие по первому измерению, т.е.

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

для каждой строки (0-dim) в y_predictied.

Обратите внимание, я хочу использовать только y_predicted и delta_t для дифференциации

Большое спасибо, Макс

1 Ответ

0 голосов
/ 16 декабря 2018

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

...