本文主要是介绍OpenAI Gym custom environment: Discrete observation space with real values,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
题意:OpenAI Gym 自定义环境:具有实数值的离散观测空间
问题背景:
I would like to create custom openai gym environment that has discrete state space, but with float values. To be more precise, it should be a range of values with 0.25 step: 10.0, 10.25, 10.5, 10.75, 11.0, ..., 19.75, 20.0
我想创建一个自定义的 OpenAI Gym 环境,该环境具有离散的状态空间,但使用浮点值。更具体地说,它应该是一个步长为 0.25 的数值范围:10.0, 10.25, 10.5, 10.75, 11.0, ..., 19.75, 20.0。
Is there a way to do this in openai gym custom environment, using spaces like Discrete, Box, MultiDiscrete or some others? Discrete requires an integer, and Box doesn't seem to have some kind of a step parameter.
在 OpenAI Gym 的自定义环境中,是否有办法使用像 `Discrete`、`Box`、`MultiDiscrete` 等空间来实现这一点?`Discrete` 需要整数,而 `Box` 似乎没有步长参数。
问题解决:
You could implement your own space using np.linspace
(considering e.g. spaces.Box as a guideline):
你可以使用 `np.linspace` 实现自己的空间(可以参考 `spaces.Box` 作为指导):
from gym.spaces.space import Space
import numpy as npclass Incremental(Space):def __init__(self, start, stop, num, **kwargs):self.values = np.linspace(start, stop, num, **kwargs)super().__init__(self.values.shape, self.values.dtype)def sample(self):return np.random.choice(self.values)def contains(self, x):return x in self.valuesspace = Incremental(10, 20, 41)
这篇关于OpenAI Gym custom environment: Discrete observation space with real values的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!