来自Keras的模型给了我相同的输出

时间:2016-11-01 23:01:48

标签: python numpy machine-learning neural-network keras

我在Keras训练了一个模型,只有Dense图层。然而,当我试图预测时,即使使用不同的值,它也会一直给我相同的答案。

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]]))

1 个答案:

答案 0 :(得分:3)

对于亚当,你的学习率是高的。实际上0.1对于我使用过的大多数优化器来说太高了。您应该使用1e-3或1e-4作为学习率。这些通常对我有用。当您使用高学习率时,模型将无法收敛。根据我的经验,它通常只能解决问题的恒定平均值。