为什么设置随机种子不能在运行中提供相同的性能?

Why doesn't setting random seed give same performance across runs?

我正在使用 pytorch 训练一些深度学习模型,其中还包括 numpy 的用法。由于随机化不是真正随机的,而是 伪随机 ,为什么 不同的 运行s[= 中的数字(即准确度等)不相同? 18=]?

我的意思是,即使我没有设置一些随机种子,也应该有一些默认的随机种子,我的代码必须根据这些随机种子 运行 并在不同的 运行 中给出相同的结果。还有更多吗?

我认为真正随机与伪随机的讨论在这里无关紧要。可能会根据日期和时间等因素生成不同的数字,这就是为什么您应该设置种子。

如果涉及到 PyTorch 和 CUDA,事情会变得有点复杂。 Here 是一篇讨论随机性和再现性的文章。

简而言之,您需要为 numpy + PyTorch 设置种子,并将后端设置为确定性操作。