it might have to do with dropout or with seed,
for example,
x = torch.randn(1, 1, 28, 28)
c = nn.Sequential(nn.Conv2d(1, 10, 1), nn.Dropout())
c(x).sum(), c(x).sum()

would give different output
whereas if model is set to eval mode, that is,
c.eval()

then,
c(x).sum(), c(x).sum()

would give same output
for seed, if you use something like,
seed = 0
random.seed(seed)
np.random.seed(seed)
torch.manual_seed(seed)
torch.random.manual_seed(seed)
torch.cuda.manual_seed(seed)
torch.backends.cudnn.deterministic=True

then it would be fine