How did you check the min. and max. values of the softmax?
If you have used:
softmax= F.softmax(softmax, dim = 1) 
print(softmax.min(), softmax.max())

and the values are still out-of-bounds, please post an executable code snippet to reproduce it.