首页 > 解决方案 > 无法在 ray 中定义自定义指标

问题描述

我正在使用一个名为 FLOW RL 的框架。它使我能够将 rllib 和 ray 用于我的 RL 算法。我一直在尝试在张量板上绘制非学习数据。在 ray 文档(链接)之后,我尝试添加自定义指标。因此,我需要使用由on_episode_step(info). 这本字典中应该有一个“情节”元素。这让我可以访问我的自定义标量。但是,每次我尝试访问剧集元素时,都会出现错误,因为它在 info dict 中不存在。这是正常的吗?

文件“examples/rllib/newGreenWaveGrid2.py”,第 295 行,on_episode_start episode = info["episode"] KeyError: 'episode'

def on_episode_step(info):
    episode = info["episode"]
    whatever = abs(episode.last_observation_for()[2])
    episode.user_data["whatever"].append(whatever)



if __name__ == '__main__':
    alg_run, gym_name, config = setup_exps()
    ray.init(num_cpus=N_CPUS + 1, redirect_output=False)
    trials = run_experiments({
        flow_params['exp_tag']: {
            'run': alg_run,
            'env': gym_name,
            'config': {
                **config,
                'callbacks': {
                    "on_episode_start": on_episode_start,
                    "on_episode_step": on_episode_step,
                    "on_episode_end": on_episode_end,

                }
            },
            'checkpoint_freq': 20,
            'max_failures': 999,
            'stop': {
                'training_iteration': 200,
            },
        },


    })

标签: tensorboardrayflow-projectrllib

解决方案


推荐阅读