python - 在后台线程中训练不适用于 Atari 游戏
问题描述
我已经使用 Tensorflow 实现了几种强化学习算法。对于连续方法(例如 DDPG、TD3),我在BipedalWalker上运行它们;对于离散方法(例如 DQN、Rainbow),我在Atari 游戏上运行它们。
我有意通过在后台线程中训练网络(通过标准 python 模块threading.Thread
)来拆分训练和环境交互。我发现这加快了在 BipedalWalker 上运行的那些方法,但它损害了 Atari 游戏上的那些方法。是什么造成了这些差异?它与python的GIL有关吗?
我可以推测的一个原因是背景学习增加了学习频率,这使得它更有可能过度拟合并陷入局部最优。
解决方案
推荐阅读
- python - django.db.utils.OperationalError:没有这样的表:poll_position
- reactjs - setState() 完成后如何调用函数
- java - 詹金斯在编译时失败
- javascript - React Js:如何在回调中使用 UseState?
- javascript - 如何将元素本身和同一函数中的事件作为参数传递
- java - 使用用户输入在 .txt 文件上写入问题
- node.js - 防止“npm install
" 来自在包中自动构建 node-addon - gitlab - 如何让 gitlab 按顺序运行作业?
- powershell - Search-Mailbox -Searchquery 带有符号的主题
- react-native - APK 启动,“继续停止”消息和 logcat 错误..?怎么修?