我想在 keras 中创建自己的损失函数,其中包含导数。例如,
def my_loss(x):
def y_loss(y_true,y_pred):
res = K.gradients(y_pred,x)
return res
return y_loss
被定义,并且
model = Sequential()
model.add(Dense(10, input_dim=2, activation='sigmoid'))
model.add(Dense(1, activation='linear'))
model_loss = my_loss(x=model.input)
model.compile(loss=model_loss, optimizer='adam')
现在因为输入是二维的,
K.gradients(y_pred,x)
必须是二维向量。但是,我不知道如何获得渐变中的每个标量。我最终想要的是 y_pred 关于 x 的所有二阶导数。有没有方便的方法来获得这个?
它与这篇文章类似,但这篇文章将二维变量分成了两个一维变量。有没有其他方法可以在不分离输入的情况下获得梯度?