我正在使用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函数作为激活函数。

最佳答案

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


减少批次大小(当数据集较小时)
降低您的学习率(经过多次培训)
缩放数据集(并在预测后重新缩放)

10-07 21:42