为什么同样的模型结构及权重训练出来的结果会不一样

alex1和alex2有相同的网络结构, 通过torch.load和torch.save使它们有同样的权重. 然后分别拿到同一个训练函数中进行训练.按理来说它们的训练误差及预测结果应该相同,为什么最后得出的结果会不一样呢?

alex1 第一个epoch loss:11.245150566 预测正确样本数是10884个
alex2 第一个epoch loss:11.245150566 预测正确样本数是11911个
它们loss相同,为什么预测结果不同呢?

alex1 最后一个epoch loss:2.2015299 预测正确样本数是50922个
alex2 最后一个epoch loss:2.2142722 预测正确样本数是50950个

具体的代码实现在 https://github.com/singing4you/d2l
想问一下大家为什么会出现这样的差异呢?

训练的时候参数更新是随机的吧, 是不是需要set seed?