К сожалению, у Кераса нет удобного способа получить каждый компонент градиента.Поэтому я использовал тензор потока для решения этой проблемы.
если f, если функция объекта с переменной x = (x1, x2)
X=tf.placeholder(tf.float32,shape=(None,2))
f=f(X)#assume it is defined'
, то df / dx_1 равно
tf.gradients(f,x)[0][:,0]
df / dx_2 равно
tf.gradients(f,x)[0][:,1]
d ^ 2f / dx_1 ^ 2 равно
tf.gradietns(tf.gradients(f,x))[0][:,0]
d ^ 2f / dx_2 ^ 2 равно
tf.gradietns(tf.gradients(f,x))[0][:,1]
d ^ 2f / dx_1dx_2 - это
tf.gradietns(tf.gradients(f,x)[0][:,0])[0][:,1]
Я верю, что есть лучший способ, но я не могу найти.