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



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

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

这是指向jupyter笔记本的链接

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 )

对于这样的网络来说,这是非常正常的精度。你只有密集层,这对这个数据集来说是不够的。Cifar-10是一个图像数据集,因此:

  • 考虑使用cnn

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

  • 尝试使用图像增强

  • 为了避免过拟合,不要忘记正则化你的模型。

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

最新更新