【问题标题】:What is the best way to save Q table to file?将 Q 表保存到文件的最佳方法是什么?
【发布时间】:2020-04-14 11:18:11
【问题描述】:

我打算将我的 q 表保存到一个文本文件(作为一个字符串)以供将来使用,但我想知道这可能是什么陷阱?此外,任何关于存储 q 表的更好方法的建议将不胜感激——例如,将其存储为 JSON 会更好吗?

【问题讨论】:

  • 也许我应该将这个问题迁移到 Stack Overflow(因为这更像是一个编程/工程问题),我会在那里提供答案。但实际上你在那里没有帐户,所以在你在那里创建帐户之前我不会迁移它。

标签: reinforcement-learning python q-learning implementation numpy


【解决方案1】:

在机器学习中,保存模型和数据的常见解决方案是使用 HDF5 格式。您可以尝试http://www.h5py.org/,这是一个 Python 库,可让您以非常简单的方式保存、读取和操作 HDF5 文件。

我不知道这是否是您的目的的最佳解决方案,或者是否有更具体的解决方案(因为这也取决于您的 Q 表的大小等),但这种格式/库允许您将数据保存在分层方式等优点。

例如,如果您有多个训练有素的代理,您可以将它们保存为字典,例如d = {"agent1": q_table1, "agent2": q_table2 }。此外,您不仅可以以这种分层方式保存它们,还可以阅读它们,然后像​​字典一样使用它们的内容。当然,这只是一个示例,让您了解如何使用此库。

因此,如果您计划拥有多个代理并且您的 Q 表可能很大,那么 HDF5 可能是一个很好的解决方案,但同时,您希望能够轻松灵活地检查和更改您的 Q 表。

有关此格式与其他常见替代方案(如数据库、简单文本文件等)相比的优势的更多详细信息,请参阅例如问题Is there an analysis speed or memory usage advantage to using HDF5 for large array storage (instead of flat binary files)? 和What are the advantages of HDF compared to alternative formats?。

【讨论】:

  • 对不起,我实际上是在为实际的 q 表使用字典(其他东西为 numpy)。我在从 HDF5 加载和重新创建字典时遇到问题。有什么想法吗?
  • @mason7663 这是另一个问题。我建议您在 Stack Overflow 上提出这个问题(因为这显然是一个编程问题,除非您更准确地描述您的问题)并用 RL、HDF5 等标记它。
猜你喜欢
  • 2018-10-02
  • 1970-01-01
  • 1970-01-01
  • 2015-07-13
  • 2010-09-27
  • 2010-12-05
  • 2010-10-16
  • 2014-07-13
  • 2013-04-08
相关资源
最近更新 更多