If you are using Softmax Loss, which is actually just a Softmax Activation plus a Cross-Entropy Loss, then the activation function is part of the loss during training. Your output will still be linear if you are using nn.linear at the output layer. Now, to be honest, I am not sure if you’ll get [0, 1] output even if your training is between [0, 1]. Best way is to print out the output values after your model converges, and if they are not bounded between [0, 1], then, use the Softmax (not Sigmoid) to resolve make bound them between [0, 1]. Hence, since the Softmax loss already implements the Softmax, the model behavior will be the same during training and testing.
NB. Maybe I was not clear in my previous reply as I mentioned you should not back-propagate through the Sigmoid, as I was subconsciously assuming that the Softomax (or sigmoid) activation is already part of the loss function. Sorry for the confusion.