在 Keras 中实现神经网络的准确度非常低

时间:2021-01-18 15:44:46

标签: python tensorflow keras neural-network

我正在尝试使用 keras 在 Cifar-10 数据集上实现 ANN 但出于某种原因,我不知道我只有 10% 的准确率?

我使用了 5 个隐藏层,分别有 8、16、32、64、128 个神经元。

This is the link to the jupyter notebook

model = Sequential()
model.add(Dense(units = 8,activation = 'sigmoid' , input_dim = X.shape[1]))
model.add(Dense(units = 16 , activation = 'sigmoid'))
model.add(Dense(units = 32 , activation = 'sigmoid'))
model.add(Dense(units = 64 , activation = 'sigmoid'))
model.add(Dense(units = 128 , activation = 'sigmoid'))
model.add(Dense(units = 10 , activation = 'softmax'))

model.compile(loss = 'categorical_crossentropy' , optimizer = 'adam' , metrics = ['accuracy'])

model.fit(x_train,y_train,epochs = 1000, batch_size = 500 )

1 个答案:

答案 0 :(得分:1)

对于像这样的网络来说,这是非常正常的准确性。您只有 Dense 层,这对于此数据集来说是不够的。 Cifar-10 是一个图像数据集,所以:

  • 考虑使用 CNN

  • 使用 'relu' 激活而不是 sigmoid。

  • 尝试使用图像增强

  • 为了避免过度拟合,不要忘记对模型进行正则化。

500 的批量大小也很高。考虑使用 32 - 64 - 128。

相关问题