首页 > 解决方案 > 在后台线程中训练不适用于 Atari 游戏

问题描述

我已经使用 Tensorflow 实现了几种强化学习算法。对于连续方法(例如 DDPG、TD3),我在BipedalWalker上运行它们;对于离散方法(例如 DQN、Rainbow),我在Atari 游戏上运行它们。

我有意通过在后台线程中训练网络(通过标准 python 模块threading.Thread)来拆分训练和环境交互。我发现这加快了在 BipedalWalker 上运行的那些方法,但它损害了 Atari 游戏上的那些方法。是什么造成了这些差异?它与python的GIL有关吗?

我可以推测的一个原因是背景学习增加了学习频率,这使得它更有可能过度拟合并陷入局部最优。

标签: pythonmultithreadingtensorflowreinforcement-learning

解决方案


推荐阅读