Keras.prediction()随着更多的预测而变得更糟

时间:2018-10-11 06:39:27

标签: python-2.7 tensorflow keras lstm prediction

我是我正在尝试使用Keras ans的新手。 我试图了解Keras LSTM中的“有状态”选项,所以我建立了以下网络。 :

rdrop = 0.3
rdrop2 = 0
model = Sequential()
model.add(LSTM(1600, return_sequences=False, batch_input_shape=(n_win, L, N), stateful=True, dropout=rdrop))
model.add(Dense(1600, activation='linear'))
model.add(Dropout(0.4))
model.add(RepeatVector(L))
model.add(LSTM(1600, return_sequences=True, stateful=False, dropout=rdrop))
model.add(TimeDistributed(Dense(N, activation='softmax')))

model.compile(loss='categorical_crossentropy', optimizer='adam', metrics=['acc'])

具有以下fit()选项:

for i in range(30):
   model.fit(data_input3, data_input3,
                    shuffle=False,
                    epochs=1,
                    batch_size=n_win))
   model.reset_states()

我得到的结果还不错,但是我发现,使用相同输入的结果,我更预测()最糟的是结果。

例如,以下代码的所有结果都是不同的,并且运行的次数越多,得到的效果越差。

t = np.zeros(100)
for i in range(100):
data_out2 = model.predict(data_input3[0:n_win, :, :], batch_size=n_win)
t = np.sum(np.abs(data_out2 - data_input3[0:n_win, :, :]))

这不是计算距离的好方法,但是当我目视检查结果时,两次调用model.predict()后,它开始变得很糟糕(第一次很好)。

在预测阶段权重是否有变化?我检查了辍学情况,它似乎仅在培训中使用。 我已经测试了Keras 2.2.3和2.2.4,它们都使用TF 1.10

运行

预先,谢谢您的帮助!

0 个答案:

没有答案