【问题标题】:How to train an RL agent in a custom environment?如何在自定义环境中训练 RL 智能体?
【发布时间】:2023-02-09 03:35:55
【问题描述】:

我创建了一个自定义空间,它扩展了 OpenAI gym.Space。我需要这个空间,因为我需要一个总和为一个值的动作空间。使用它,我可以扩大输出并满足我的要求。

class ProbabilityBox(Space):
    """
        Values add up to 1 and each value lies between 0 and 1
    """
    def __init__(self, size=None):
        assert isinstance(size, int) and size > 0
        self.size = size
        gym.Space.__init__(self, (), np.int64)

    def sample(self):
        return np.around(np.random.dirichlet(np.ones(self.size), size=1), decimals=2)[0]

    def contains(self, x):
        if isinstance(x, (list, tuple, np.ndarray)):
            if np.sum(x) != 1:
                return False
            
            for i in x:
                if i > 1 or i < 0:
                    return False
            
            return True
        else:
            return False

    def __repr__(self):
        return f"ProbabilityBox({self.size})"

    def __eq__(self, other):
        return self.size == other.size

我在自定义环境中的操作空间中使用此空间。我无法在stable-baselines3 中训练这个代理,因为它不支持自定义空间。

  1. 是否有替代方法来模拟此场景以便我可以使用stable-baselines3
  2. 我可以使用哪些其他库/框架来训练支持自定义空间的 RL 代理?

【问题讨论】:

    标签: reinforcement-learning openai-gym stable-baselines


    【解决方案1】:

    稳定的基线确实支持自定义环境。看

    https://stable-baselines3.readthedocs.io/en/master/guide/custom_env.html

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-08-16
      • 2020-09-22
      • 2020-02-22
      • 2022-07-12
      • 1970-01-01
      相关资源
      最近更新 更多