I am trying to implement ANN on a Cifar-10 dataset using keras but for some reason I dont know I am getting only 10% accuracy ?
I have used 5 hidden layers iwth 8,16,32,64,128 neurons respectively.
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 )
That's very normal accuracy for a such network like this. You only have Dense layers which is not sufficient for this dataset. Cifar-10 is an image dataset, so:
Consider using CNNs
Use 'relu' activation instead of sigmoid.
Try to use image augmentation
To avoid overfitting do not forget to regularize your model.
Also batch size of 500 is high. Consider using 32 - 64 - 128.