Ray on_train_result 回调检索 episode_id

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


我想用一些小插曲数据 info["episode"].user_data从回调on_episode_end(info)改变info["result"]的字典on_train_result(info)。


有没有办法做到这一点?由于info两个回调的对象输出非常不同。


on_episode_end(info):给出“env”和“episode”

on_train_result(info):给出“agent”和“result”


来自的“结果”on_train_result(info)并没有提供关于所运行剧集的太多信息。


我觉得奇怪的是“结果”只提供了类似的信息


'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,也许我可以尝试将两个回调链接在一起。


阿晨1998
浏览 271回答 1
1回答

九州编程

问题是结果是不同机器上许多不同剧集的摘要,因此无法访问剧集信息。在 on_episode_end 回调中,您可以将指标保存到 episode.custom_metrics 中,这些将显示在结果对象中。https://ray.readthedocs.io/en/latest/rllib-training.html#callbacks-and-custom-metrics
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python