I have implemented a convolutional neural network with batch normalization on 1D input signal. My model has a pretty good accuracy of ~80%. Here is the order of my layers: (Conv1D, Batch, ReLU, MaxPooling) repeat 6 times, Conv1D, Batch, ReLU, Dense, Softmax.
I have seen several articles saying that I should NOT use dropout on convolutional layers, but I should use batch normalization instead, so I want to experiment with my models by replacing all batch normalization layers with dropout layers to see if dropout will really make my performance worse.
My new model has the following structure: (Conv1D, Dropout, ReLU, MaxPooling) repeat 6 times, Conv1D, Dropout, ReLU, Dense, Softmax. I have tried dropout rates of 0.1, 0.2, 0.3, 0.4, 0.5. The performance of my new model is only ~25%, much worse than my original model, and even worse than predicting the dominating class (~40%).
I wonder if the huge difference in performance is actually the result from replacing batch normalization with dropout. or is it my misunderstanding of how I should use dropout.