为强化学习算法有效地提供数据

时间:2017-02-24 09:15:16

标签: tensorflow reinforcement-learning

我目前正在TensorFlow中实现深度双Q学习算法。我有一个基于NumPy数组实现的体验重放缓冲区。但是,一些性能分析表明,使用feed_dict将数据从NumPy数组馈送到图形是非常低效的。文档https://www.tensorflow.org/performance/performance_guide中也指出了这一点。

是否有人建议可以更有效地进行喂食?使用静态数据集,可以使用输入管道(例如记录读取器)完成馈送。然而,体验重播缓冲区会随着时间的推移而变化,使这种类型的喂养更具挑战性。

非常感谢任何答案,谢谢!

1 个答案:

答案 0 :(得分:0)

如果您的数据是最小值并且是唯一的,那么简短的回答是没有办法加快速度。如果您的数据有一些冗余或不需要的装饰,您可以删除它,然后在将其送入您的模型之前将其删除,但假设您已经完成了这项并且您的数据在每批中都是唯一的,那么就没有了(在这方面)你可以做到。

也就是说,您可以采取一些措施来改善网络性能。

  • 您的Q学习算法可以根据this paper进行改进,这基本上表示在您的网络累积错误超过阈值之前不会进行学习阶段。
  • 如果您正在重复使用某些训练集或重播它们,那么您可以使用加载阶段将训练数据加载到GPU中以便快速播放。