首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Rllib OfflineData制备SAC的研究

Rllib OfflineData制备SAC的研究
EN

Stack Overflow用户
提问于 2021-01-18 18:09:25
回答 1查看 101关注 0票数 1

我有一些离线经验:(s,a,r,s'),它们是由启发式生成的。我想在培训SAC代理时使用这些工具。在使用saving_experiences时,使用示例SAC准备数据时会出现错误。这是一个colab,其中的问题暴露在pendulum V0环境中。我从错误消息中了解到,SAC需要一些“权重”(有时是“不”?!)除了作为离线数据生成的体验之外。我能否仅使用SAC的离线体验(s,a,r,s')?

谢谢。

EN

回答 1

Stack Overflow用户

发布于 2021-03-08 03:33:48

看一下您共享的saving_experiences文件,当您将这些离线体验加载到rllib中时,它会创建SampleBatch对象,这是使用梯度方法训练代理时向代理(至少对于策略外代理)呈现数据的方式。

“权重”指的是样本的优先级权重,并将用于重要性采样加权优先级体验回放(如果感兴趣,请查看PrioritzedReplayBufferhere )。如果您不太关心权重,您应该能够将所有这些都设置为1.0

您应该能够使用具有SAC的(s, a, r, s')的离线体验,但是,您可能需要将数据格式化为适当的SampleBatch,例如,使用以下代码片段:

代码语言:javascript
复制
from ray.rllib.policy.sample_batch import SampleBatch, MultiAgentBatch

# Initialize SampleBatch
rllib_batch_dict = {"obs": s, "actions": a, "rewards": r, "new_obs": s`,
                    "dones": np.array([False for i in range(len(s))], 
                    "weights": np.ones((len(s)), "eps_id": episode_ids,
                    "unroll_id": episode_steps, "agent_index": np.zeros(len(s))}  # Where your data is stored in (s, a, r, s`)

# Wrap your dictionary in a SampleBatch wrapper
rllib_batch = SampleBatch(rllib_batch_dict)

# If you still get errors, try wrapping this in a MultiAgentSampleBatch
marl_batch_dict = {"0": rllib_batch}
marl_batch = MultiAgentSampleBatch(marl_batch_dict)

对于"t",我认为这只是该集中样本的时间步长,例如,如果是第一步,则为0,如果是第二步,则为1,依此类推。也许你可以在创建你的(s, a, r, s )数据的时候跟踪这一点?

最后,不确定您是否需要它,但是您也可以尝试手动创建一个SampleBatch,然后在需要时将其包装在MultiAgentSampleBatch中。为此,您只需遵循上面的代码,然后在创建SampleBatch对象(实际上只是一个字典包装器)之前添加以下键/值对:

  1. 'obs' --> s
  2. 'actions' --> a
  3. rewards --> r
  4. 'new_obs' --> s'
  5. 'dones' -->将这些设置为时间步长是否标记episode
  6. 'agent_index'的结束--> 0(如果是单智能体,否则您将需要index)
  7. 'eps_id' -->这是一个占位符剧集ID (我不认为在训练期间使用过它),可以设置为"0",etc.
  8. 'unroll_id' -->这是步数,例如etc.
  9. 'weights'"1"0 -->这些是重要性采样的权重。如果您不关心这一点,您可以将它们设置为1.0.

希望这能帮到你--祝你好运!

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65772439

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档