如何在Keras中定义我自己的损失函数?
我尝试在Keras中使用CuDNNLSTM来处理一些具有多个输出的顺序问题。我的代码编写如下:如何在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中使用均方误差作为损
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
。