在 torchrl 推出期间如何访问有关我的体育馆环境的更多信息?

问题描述 投票:0回答:1

我目前正在我的自定义体育馆环境中训练 PPO 算法,目的是进行追逐躲避游戏。然而,在训练过程中,我想定期评估我的策略的进展,并以轨迹的形式可视化结果。 (我的代码基本上遵循这个官方教程,以防你需要更多上下文)

        if i % 10 == 0:
            with set_exploration_type(ExplorationType.MEAN), torch.no_grad():
                eval_rollout = env.rollout(1000, policy_module)

“rollout”方法返回一个张量字典对象,其中包含有关给定轨迹的一些信息,例如代理(逃避者)采取的操作或观察结果。然而,我选择的这些观察结果是相对指标,但我需要逃避者和追捕者的绝对位置,以便能够绘制他们的行为。我希望在这个张量中的某个位置包含绝对位置,类似于如何将信息变量添加到体育馆环境中的步骤方法中:

    def _get_info(self):
        return {'evader_pos': self.evager.get_position(),
                'pursuer-pos': self.pursuer.get_position()
        }

    def step(self, action):
          . . . 

        return observation, reward, terminated, False, **self.get_info()**

我查看了 torchrl 文档和源代码,但似乎没有找到任何与我的意图相关的内容。 所以我的问题是:有没有我可以尝试的替代方案,或者我是否监督了一些为 rollout-tensordict 提供附加信息的东西?

我尝试了显而易见的方法:从相对指标重建绝对位置,但是这是不可能的,因为我需要引入一些我认为没有好处的新(冗余)信息。

非常感谢您的宝贵时间!

reinforcement-learning torch openai-gym
1个回答
0
投票

尚不清楚您的健身房环境是否在信息字典中返回这些值,但假设它确实返回,您可以使用

GymWrapper.set_info_dict_reader

在此处查看此方法:https://pytorch.org/rl/reference/ generated/torchrl.envs.GymLikeEnv.html#torchrl.envs.GymLikeEnv.set_info_dict_reader

© www.soinside.com 2019 - 2024. All rights reserved.