首页 > 解决方案 > 在 keras model.predict 中获取所有相同的值

问题描述

我正在使用 keras LSTM 层,我的输出预测彼此非常相似。它们相差不超过 2 个单位。这是我的代码:

model = Sequential()

model.add(LSTM(5, activation='relu', input_dim=5))
model.add(Dense(units=1, activation='sigmoid'))

model.compile(loss='mean_squared_error',
              optimizer='sgd',
              metrics=['accuracy'])

prediction = model.predict(x_scaled_test, batch_size=128)

Gold_prices = prediction*(max(Input['Gold Price']) - min(Input['Gold Price'])) + min(Input['Gold Price'])
print(Gold_prices)

我的输出是:

[[ 1288.44628906]
 [ 1289.5736084 ]
 [ 1289.57202148]
 [ 1287.84240723]
 [ 1287.92114258]
 [ 1287.15515137]
 [ 1287.58068848]
 [ 1287.59069824]
 [ 1287.55432129]
 [ 1286.953125  ]
 [ 1286.72021484]
 [ 1285.88684082]
 [ 1285.25085449]
 [ 1285.2557373 ]
 [ 1285.06494141]
 [ 1285.65588379]
 [ 1285.36767578]
 [ 1285.87121582]
 [ 1286.1427002 ]
 [ 1286.52526855]
 ...

我正在为我的激活函数使用 relu 和 sigmoid 函数。

标签: pythonkeras

解决方案


根据this issue,您可以尝试以下操作:

  1. 减少你的批量大小(当你有小数据集时)
  2. 衰减你的学习率(经过多次训练)
  3. 缩放您的数据集(并在预测后重新缩放)

推荐阅读