Neural network 在大纪元keras期间,精度下降

Neural network 在大纪元keras期间,精度下降,neural-network,python-3.5,keras,floating-accuracy,loss,Neural Network,Python 3.5,Keras,Floating Accuracy,Loss,我试着写一个神经网络,但它的准确度并不能改变每个时代。我使用的是keras,我可以看到精度随着每个历元本身的评估而变化,它将从低开始,上升一点,然后每次下降到完全相同的值。我尝试过改变批量大小、学习率,稍微改变一下数据,但每次都做同样的事情,只是精度值可能不同。我也尝试过不同的优化器。感谢您的帮助。(我还能够让mnist示例正常工作) 因为输出层中只有一个神经元,所以我假设您正在进行回归,而不是分类 如果是这种情况,那么您应该将丢失函数更改为'mse',并且还应该删除输出层中的激活,因为sigm

我试着写一个神经网络,但它的准确度并不能改变每个时代。我使用的是keras,我可以看到精度随着每个历元本身的评估而变化,它将从低开始,上升一点,然后每次下降到完全相同的值。我尝试过改变批量大小、学习率,稍微改变一下数据,但每次都做同样的事情,只是精度值可能不同。我也尝试过不同的优化器。感谢您的帮助。(我还能够让mnist示例正常工作)


因为输出层中只有一个神经元,所以我假设您正在进行回归,而不是分类

如果是这种情况,那么您应该将丢失函数更改为
'mse'
,并且还应该删除输出层中的激活,因为sigmoid函数将在0和1之间挤压输出

model = Sequential()
model.add(Dense(1000, input_dim=100, init='uniform', activation='relu'))
model.add(Dense(len(history), init='uniform', activation='relu'))
model.add(Dense(1, init='uniform', activation='sigmoid'))
opt = SGD(lr=1, decay=1e-6, momentum=0.9, nesterov=True)
model.compile(loss='binary_crossentropy', optimizer=opt, metrics=['accuracy'])
model.fit(X, Y, nb_epoch=100, batch_size=50, verbose = 1)
scores = model.evaluate(X, Y)
print("%s: %.2f%%" % (model.metrics_names[1], scores[1]*100))