2

我想验证我的损失函数,因为我已经读到 keras 中的 mse 损失函数存在问题。考虑 keras 中的 lstm 模型将 3d 时间序列预测为多目标(y1,y2,y3)。假设一批输出序列的形状为 (10, 31, 1) 下面的损失函数会不会取预测输出和真实输出的平方差,然后取 310 个样本的均值,从而得到单个损失值?如果将 3 个输出连接为 (10, 31, 3),此操作将如何发生

def mse(y_true, y_pred):
            return keras.backend.mean(keras.backend.square(y_pred - y_true), axis=1)
4

1 回答 1

3

如果要获取单个损失值,则无需设置axis.

import keras.backend as K

def mse(y_true, y_pred):
    return K.mean(K.square(y_pred - y_true))

y_true = K.random_normal(shape=(10,31,3))
y_pred = K.random_normal(shape=(10,31,3))

loss = mse(y_true, y_pred)
print(K.eval(loss))

# print
2.0196152
于 2019-03-03T04:44:55.400 回答