Sam*_*Sam 2 python numpy machine-learning neural-network keras
我在 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]]))
Run Code Online (Sandbox Code Playgroud)
你的学习率对亚当来说太高了。实际上 0.1 对于我使用的大多数优化器来说太高了。您应该使用 1e-3 或 1e-4 作为学习率。这些通常对我来说效果很好。当您使用如此高的学习率时,模型将无法收敛。根据我的经验,它通常只是解决问题的恒定平均值。