Usually general questions such as “my model doesn’t train” are hard to answer as no background was given.
One approach I would use is to try to overfit a small dataset first (e.g. just 10 samples) and make sure the model is able to learn these samples. If not, you might be using a wrong criterion, unnecessary activation functions in the model output, might be accidentally detaching the computation graph etc.