pytorch - 缺少种子函数,无法使用 Open AI Gym 和 PyTorch 创建可重复的 RL 实验
问题描述
我正在使用一个简单的 DDQN-PER ( https://github.com/higgsfield/RL-Adventure/blob/master/4.prioritized%20dqn.ipynb ) 来运行我的 RL 实验。这可以用作我的问题的最小且可验证的代码。
此外,这里是我发现有用的种子功能 -
random.seed(seed)
np.random.seed(seed)
torch.manual_seed(seed)
torch.cuda.manual_seed(seed)
torch.backends.cudnn.deterministic = True
env.seed(seed)
env.action_space.seed(seed)
尽管如此,我无法重现我的实验。我相信我缺少一些种子功能,并且会很感激对此的投入。
解决方案
检查你的健身房版本。最近对 v0.20 进行了重大升级。
这里还有一篇博文,描述了新环境应该是确定性的,引用了本质:
决定论
到目前为止,ALE 还没有完全确定。存在通过取决于控制台状态的各种方法实现自己的 PRNG 的游戏。我们现在正确控制了这种随机性来源,现在可以自信地说模拟器是 100% 确定性的。