Try to scale down your use case by overfitting a small subset of your data, e.g. just 10 samples.
If this doesn’t work, play around with some hyperparameters.
In case your model is not able to overfit these samples, you would have to check the architecture again or there might be a bug in the complete training routine which is not shown here or which I have missed.