我尝试创建一个带有keras(backened tensorflow)的神经网络。 我有4个输入和2个输出变量: 不可用MLP与keras预测
我想做一个测试集预测不可用。
这是我的代码:
from keras import optimizers
from keras.models import Sequential
from keras.layers import Dense
import numpy
numpy.random.seed(7)
dataset = numpy.loadtxt("trainingsdata.csv", delimiter=";")
X = dataset[:,0:4]
Y = dataset[:,4:6]
model = Sequential()
model.add(Dense(4, input_dim=4, init='uniform', activation='sigmoid'))
model.add(Dense(3, init='uniform', activation='sigmoid'))
model.add(Dense(2, init='uniform', activation='linear'))
sgd = optimizers.SGD(lr=0.01, decay=1e-6, momentum=0.9, nesterov=True)
model.compile(loss='mean_squared_error', optimizer='sgd', metrics=['accuracy'])
model.fit(X, Y, epochs=150, batch_size=10, verbose=2)
testset = numpy.loadtxt("testdata.csv", delimiter=";")
Z = testset[:,0:4]
predictions = model.predict(Z)
print(predictions)
当我运行该脚本,精度为1.000每一个时代之后,我得到的结果总是相同的输出为每个输入对:
[-5.83297 68.2967]
[-5.83297 68.2967]
[-5.83297 68.2967]
...
有没有人知道我的代码中的错误是什么?
我不确定,但我想你可以尝试重塑你的Y变量。从https://keras.io/models/model/它说'输出= [b1,b3,b3]'所以我认为输出应该是值的设置,而不是数据的设置。你可以通过转置来做到这一点。 – malioboro
为了确保您注意到它:您已经定义了SGD优化器,但实际上并未使用它:在编译期间使用Adaptative Momentum(Adam)。 – Nathan
谢谢!我在帖子中改变了它。在我原来的脚本中是正确的。你更喜欢哪个优化器? –