如何计算可变长度序列的时间序列时步损失(与序列损失相反)

时间:2019-11-26 16:34:47

标签: python keras

我正在尝试在可变长度序列上训练LSTM。为此,我将X和y传递给生成器。

这可以编译,但是问题是我使用MSE作为损失函数,Keras正在计算整个序列的平均MSE,我希望它跨时间步长进行计算。例如,

y_pred = np.array([np.array([.1, .2]), np.array([.1, .2, .4])])
y_true = np.array([np.array([0, 0]), np.array([0, 0, 0])])

Keras会将MSE损失计算为0.0475 = (1/2)*((.1**2 +.2**2)*(1/2)+(.1**2 +.2**2+.4**2)*(1/3)),但我希望它计算0.052 = (1/5)*(.1**2 +.2**2+.1**2 +.2**2+.4**2),并根据其包含的时间步长有效地对每个序列进行加权。

我已经尝试了一些前进的道路,但是似乎都没有。我宁愿继续使用生成器,而不要使用填充和遮罩,但是如果绝对必须发生填充,那就这样吧。

0 个答案:

没有答案