I think there’s something wrong with labels during training loop because BCELoss = -ln(1-x) if label==0 and -ln(x) if label==1. It can decrease only if your predictions are getting closer to labels you provided.
If bce loss is dropping to .1 it means average distance between labels and predictions is about 0.095 (solve -ln(x)=.1 for label==1 or -ln(1-x)=.1 for label==0)