Ray on_train_result 回调检索 episode_id

Ray on_train_result callback retrieving episode_id

我正在使用 Ray/RLLib 的 APEX-DQN 代理(AsyncReplayOptimizer)。

我想使用一些剧集数据 info["episode"].user_data 从回调 on_episode_end(info) 更改 on_train_result(info) 中的 info["result"] 字典。

有办法吗?由于两个回调输出的对象 info 非常不同。

on_episode_end(info) :给出 "env" 和 "episode"
on_train_result(info) :给出 "agent" 和 "result"

on_train_result(info) 中的 "result" 并没有提供太多关于剧集 运行 的信息。

我觉得很奇怪 "result" 只提供像

这样的信息
'result':{
      'episode_reward_max':13010.0,
      'episode_reward_min':12150.0,
      'episode_reward_mean':12580.0,
      'episode_len_mean':50.0,
      'episodes_this_iter':2,
      'episodes_total':2,
      ...
}

没有关于剧集 ID 的任何信息 运行。如果有剧集 ID,也许我可以尝试将两个回调链接在一起。

问题是结果是不同机器上许多不同剧集的摘要,因此剧集信息不可访问。但是,在 on_episode_end 回调中,您可以将指标保存到 episode.custom_metrics,这些指标将显示在结果对象中。

https://ray.readthedocs.io/en/latest/rllib-training.html#callbacks-and-custom-metrics