OpenAI Gym 自定义环境:具有真实值的离散观察 space
OpenAI Gym custom environment: Discrete observation space with real values
我想创建具有离散状态 space 但具有浮点值的自定义 openai 健身房环境。更准确地说,它应该是一个步长为 0.25 的值范围:
10.0, 10.25, 10.5, 10.75, 11.0, ..., 19.75, 20.0
有没有办法在 openai gym 自定义环境中使用 space 像 Discrete、Box、MultiDiscrete 或其他一些? Discrete 需要一个整数,而 Box 似乎没有某种 step 参数。
您可以使用 np.linspace
实现您自己的 space(考虑例如 spaces.Box
作为指导):
from gym.spaces.space import Space
import numpy as np
class 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.values
space = Incremental(10, 20, 41)
我想创建具有离散状态 space 但具有浮点值的自定义 openai 健身房环境。更准确地说,它应该是一个步长为 0.25 的值范围: 10.0, 10.25, 10.5, 10.75, 11.0, ..., 19.75, 20.0
有没有办法在 openai gym 自定义环境中使用 space 像 Discrete、Box、MultiDiscrete 或其他一些? Discrete 需要一个整数,而 Box 似乎没有某种 step 参数。
您可以使用 np.linspace
实现您自己的 space(考虑例如 spaces.Box
作为指导):
from gym.spaces.space import Space
import numpy as np
class 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.values
space = Incremental(10, 20, 41)