Я работаю с Keras-LSTM для прогнозирования двух разных выходов, используя одни и те же входные данные.Моя модель ниже работает без каких-либо ошибок.Вот мои вопросы: если есть способ изменить loss_weights
в строке model.compile
.
При текущем параметре окончательная потеря определяется как 0.5 x loss_output1 + 0.5 x loss_output2
, однако я хочу рассчитать окончательную потерю как sqrt(loss_output1^2 + loss_output1^2)
.
def rmse_loss(y_true, y_pred):
return (K.sqrt(K.mean(K.square(y_pred - y_true), axis=-1)))/K.mean(y_true)
inputs=Input((data_tensor["X"].shape[1], data_tensor["X"].shape[2]), name='input')
model= LSTM(units=nHid, return_sequences=True)(inputs)
model= Dropout(dropout)(model)
model= LSTM(units=nHid, activation='linear')(model)
model= Dropout(dropout)(model)
output1= Dense(activation="relu", output_dim=1)(model)
output2= Dense(activation="relu", output_dim=1)(model)
model=Model(inputs=[inputs], outputs=[output1, output2])
# complie model
model.compile(loss=[rmse_loss, rmse_loss], optimizer=Adam, loss_weights=[0.5,0.5])