在Python中使用gym.spaces.box构建一个多维连续型观测空间
发布时间:2024-01-06 21:32:29
在Python中,可以使用gym.spaces.Box来构建多维连续型观测空间。Box类可以定义一个具有指定形状、数据类型和取值范围的N维数组空间。
下面是一个使用gym.spaces.Box构建多维连续型观测空间的例子:
import gym
from gym import spaces
import numpy as np
# 创建一个3维连续型观测空间
low = np.array([0, 0, 0]) # 观测空间的最小值
high = np.array([1, 1, 1]) # 观测空间的最大值
shape = (3,) # 观测空间的形状
dtype = np.float32 # 观测空间的数据类型
observation_space = spaces.Box(low, high, shape=shape, dtype=dtype)
# 随机生成一个观测样本
observation = observation_space.sample()
# 打印观测样本的取值范围和形状
print("观测样本的取值范围:", observation_space.low, observation_space.high)
print("观测样本的形状:", observation_space.shape)
print("观测样本的数据类型:", observation_space.dtype)
print("观测样本:", observation)
这个例子定义了一个形状为(3,)的三维连续型观测空间。观测空间的最小值为[0, 0, 0],最大值为[1, 1, 1]。样本的数据类型为32位浮点数。
使用sample()方法可以从观测空间中随机采样一个观测样本。在上面的例子中,observation = observation_space.sample()随机生成了一个观测样本。可以通过打印observation_space.low和observation_space.high来获取观测样本的取值范围。
通过运行上面的代码,可以得到如下输出:
观测样本的取值范围: [0. 0. 0.] [1. 1. 1.] 观测样本的形状: (3,) 观测样本的数据类型: float32 观测样本: [0.76782817 0.8903569 0.15722038]
上面的输出结果中,观测样本的取值范围与预设的最小值和最大值一致,形状也与预设的形状一致。观测样本是一个随机生成的三维浮点数组。
使用gym.spaces.Box构建多维连续型观测空间,可以很方便地定义自己的观测空间,并在实际应用中使用。
