损失函数 Keras out_dim > 1
Loss function Keras out_dim > 1
我有一个训练数据:
而且,我在 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
我能做什么?
您可以定义自定义损失函数,仅根据 A
的值计算 mean_squared_error()
损失:
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')
您需要研究的是自定义损失函数:
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 均方误差损失函数。
我有一个训练数据:
而且,我在 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
我能做什么?
您可以定义自定义损失函数,仅根据 A
的值计算 mean_squared_error()
损失:
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')
您需要研究的是自定义损失函数:
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 均方误差损失函数。