我有一个训练数据:
而且,我在Keras中建立了一个模型,该模型具有多个输出维度。我想预测A,B和C:
model = Sequential()
model.add(GRU(32, input_shape=(train_X.shape[1], train_X.shape[2])))
model.add(Dense(3))
model.compile(loss='mean_squared_error', optimizer='adam')
但是我想要A中的最小值mean_squared_error
,即只考虑A作为损失函数。
我能做什么?
答案 0 :(得分:0)
您可以定义自定义损失函数,仅根据mean_squared_error()
的值计算A
损失:
from keras import losses
def loss_A(y_true, y_pred):
return losses.mean_squared_error(y_true[:,0], y_pred[:,0])
#...
model.compile(loss=loss_A, optimizer='adam')
答案 1 :(得分:0)
您需要研究的是自定义损失函数:
def only_A_mean_squared(y_true, y_pred):
return keras.losses.mean_squared_error(y_true[:,0], y_pred[:,0])
并且为了使用它:
model.compile(loss=only_A_mean_squared, optimizer='adam')
我在上面所做的是创建一个自定义损失函数,该函数仅采用第一个维度(“ A”)并将其提供给正常的keras均方误差损失函数。