0

我试图编写一个神经网络,但准确性不会改变每个时期。我正在使用 keras,我可以观察到每个 epoch 本身评估时的精度变化,它会从低开始,上升一点,然后在每次example output时回落到完全相同的值。我试过改变批量大小、学习率、稍微改变数据,但每次都做同样的事情,只是可能有不同的准确度值。我也尝试过不同的优化器。任何帮助表示赞赏。(我也能够得到一个 mnist 示例)

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

1 回答 1

0

由于您的输出层中只有一个神经元,我假设您正在进行回归而不是分类。

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

于 2017-02-16T15:51:26.323 回答