Невозможно определить пользовательские метрики в Ray
Я использую фреймворк FLOW RL. Это позволяет мне использовать rllib и ray для моего алгоритма RL. Я пытался построить не обучающие данные на тензорной доске. Следуя документации по Ray ( ссылка), я попытался добавить собственные метрики. Поэтому мне нужно использовать info dict, к которому обращаетсяon_episode_step(info)
. В этом словаре должен присутствовать элемент "эпизод". Это позволяет мне получить доступ к моим пользовательским скалярам. Однако каждый раз, когда я пытаюсь получить доступ к элементу эпизода, я получаю сообщение об ошибке, поскольку его нет в информационном слове. Это нормально?
Файл "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,
},
},
})