如何在Keras中定义我自己的损失函数?

如何在Keras中定义我自己的损失函数?,keras,lstm,python-3.5,Keras,Lstm,Python 3.5,我尝试在Keras中使用CuDNNLSTM来处理一些具有多个输出的顺序问题。我的代码编写如下: inputs = Input(...) lstm_outputs = CuDNNLSTM(n_neurons, return_sequences=True)(inputs) outputs = TimeDistributed(Dense(3))(lstm_outputs) model = Model(inputs=inputs, outputs=outputs) 当我在Keras中使用均方误差作为损

我尝试在Keras中使用CuDNNLSTM来处理一些具有多个输出的顺序问题。我的代码编写如下:

inputs = Input(...)
lstm_outputs = CuDNNLSTM(n_neurons, return_sequences=True)(inputs)
outputs = TimeDistributed(Dense(3))(lstm_outputs)
model = Model(inputs=inputs, outputs=outputs)
当我在Keras中使用均方误差作为损失函数时,结果如下

误差=np.平均值(np.平方(y_pred-y_real))

其中,y_pred和y_real的特征数为3

但我想将损失函数定义如下:

误差=np.平均值(np.平方(y_pred[:,:,0]-y_real[:,:,0])+ np.square(y_pred[:,:,1]-y_real[:,:,1])+np.square(y_pred[:,:,1]), 2] -y_real[:,:,2]))


我不知道如何实施,有人能给我一些建议吗?非常感谢

有什么区别?你的第二次失利只是第一次失利的3倍,不是吗?当然,这是不同的。第一个将计算三个误差之和的平方,而第二个将计算三个误差之和的平方@于阳诺。第一个将计算元素误差,元素平方,然后最终平均所有元素。在你的第一次损失中没有
sum