Could you explain the general workflow of your model a bit?
It seems that you are using nn.BCELoss with a softmax output from your decoder.
Also does data represent a probability distribution in [0, 1]?
I would suggest to use a small data sample (e.g. 10 samples) and try to overfit your model.
If your model cannot overfit this small sample, there might be other code bugs.