This is pretty common when training deep networks. A lot of the underlying processes (eg. initialization of network weights, convolutional backend, mini-batch sequencing, hyperparameters etc.) are randomized. Some configurations perform better/worse than others.
If you want your experiments to be perfectly repeatable, consider adding something like this to your main script.
randomseed = 12345 # Or your favourite integer
np.random.seed(randomseed) # If you are using numpy functions anywhere
torch.manual_seed(randomseed)
torch.cuda.manual_seed(randomseed) # If you are using pytorch on a GPU
# One other source of randomness, that most people ignore
torch.backends.cudnn.deterministic = True
# If you are using python's random module, also include this one
random.seed(randomseed)