Machine learning 我的模型总是给出相同的预测值

Machine learning 我的模型总是给出相同的预测值,machine-learning,keras,deep-learning,Machine Learning,Keras,Deep Learning,我使用gru层训练和预测排名。 但即使输入发生变化,它也总是给出相同的预测值。 例如 输入(1,2,3,5)->6 输入(2,4,6,9)->6 我的模型出了什么问题 model = Sequential() model.add(GRU(32, batch_input_shape = (1,6,1), return_sequences=True, stateful=True)) model.add(GRU(16, return_sequences=True, stateful=True)) mo

我使用gru层训练和预测排名。 但即使输入发生变化,它也总是给出相同的预测值。 例如 输入(1,2,3,5)->6 输入(2,4,6,9)->6

我的模型出了什么问题

model = Sequential()
model.add(GRU(32, batch_input_shape = (1,6,1), return_sequences=True, stateful=True))
model.add(GRU(16, return_sequences=True, stateful=True))
model.add(GRU(8, activation = 'relu', return_sequences = True, stateful = True))
model.add(GRU(4, activation ='relu', stateful = True))
model.add(Dense(1))
model.compile(optimizer='adam', loss='mae', metrics=['acc'])
model.fit(x[train], y[train], epochs=num_epochs, batch_size=1, verbose=0, callbacks=[early_stopping_callback, checkpointer],
           validation_data = (x[test], y[test]))

有什么原因使您的状态为True吗?将激活更改为
relu
?@thushv89那么你的意思是我必须更改stateful选项?我最近遇到了一个类似的错误。我的问题是,我的训练数据中存在nan值。这有时会导致损失变成nan,但我的情况并非如此。最后,我摆脱了这些奇怪的数值,预测工作正常。也许你也有类似的问题。@Solvalu谢谢你的评论。但是我的数据没有nan数据…你有什么样的数据?如果类“6”是高度不平衡的(数据集中该类的实例比任何其他类都多),则模型可能会学习仅预测该类。是否有原因使您保持
stateful=True
?将激活更改为
relu
?@thushv89那么你的意思是我必须更改stateful选项?我最近遇到了一个类似的错误。我的问题是,我的训练数据中存在nan值。这有时会导致损失变成nan,但我的情况并非如此。最后,我摆脱了这些奇怪的数值,预测工作正常。也许你也有类似的问题。@Solvalu谢谢你的评论。但是我的数据没有nan数据…你有什么样的数据?若类“6”是高度不平衡的(数据集中该类的实例比任何其他类都多),那个么模型可能会学会仅预测该类。