我在Keras中训练了一个模型,只有密集层。然而,当我尝试预测时,它总是给我相同的答案,即使有不同的值。
import numpy
from keras.models import Sequential
from keras.layers import Dense
from keras.layers import LSTM
from keras.layers import Dropout
from keras.layers.embeddings import Embedding
from keras.optimizers import Adam
import pandas as pd
import tensorflow as tf
tf.python.control_flow_ops = tf
df = pd.read_csv('/home/sam/Documents/data.csv')
dfX = df[['Close']]
dfY = df[['Y']]
bobX = dfX.as_matrix()
boby = dfY.as_matrix()
model = Sequential()
model.add(Dense(200, input_dim=1))
model.add(Activation('sigmoid'))
model.add(Dense(75))
model.add(Activation('sigmoid'))
model.add(Dense(10))
model.add(Activation('sigmoid'))
model.add(Dense(1))
adam = Adam(lr=0.1)
model.compile(loss='mse', optimizer= adam)
print(model.summary())
model.fit(bobX, boby, nb_epoch=2500, batch_size=500, verbose=0)
model.predict(np.array([[210.99]]))
你的学习率对亚当来说太高了。实际上,对于我使用过的大多数优化器来说,0.1太高了。你应该使用1e-3或1e-4作为学习率。这些对我来说通常都很有效。当你使用如此高的学习率时模型将无法收敛。根据我的经验,它通常只满足于问题的恒定平均值。