如何在Keras中创建自定义损失函数,包括神经网络输出相对于输入的导数?

时间:2019-11-11 14:41:10

标签: python keras neural-network loss-function

我正在寻找训练一个神经网络来满足一个常微分方程。我已经使用keras顺序模型构建了这样的神经网络。

import keras
from keras.models import Sequential
from keras.layers import Dense
from keras.layers.advanced_activations import LeakyReLU, PReLU
model = Sequential()
model.add(Dense(output_dim = 20, init = 'uniform', activation = 'relu', input_dim = 1,use_bias=True))
model.add(Dense(output_dim = 20, init = 'uniform', activation = 'relu',use_bias=True))
model.add(Dense(output_dim = 20, init = 'uniform', activation = 'relu',use_bias=True))
model.add(Dense(output_dim = 1,init='uniform',activation='sigmoid'))`

现在,我希望神经网络的输出满足以下微分方程:

dy/dx+y=x

其中x介于0和1之间。 假设N代表构造的神经网络的输出,我想要以下损失函数

∑(dN/dx_i+N-x_i)^2

如何使用Keras顺序模型做到这一点?

0 个答案:

没有答案