强化学习——OpenAI Gym——环境理解和显示


强化学习——OpenAI Gym——环境理解和显示

本文以CartPole为例。
新建Python文件,输入

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
import gym

env = gym.make("CartPole-v0")              # 定义使用gym库中的环境:CartPole
env = env.unwrapped                        # 打开包装
# 以上两句可换成 env = gym.make('CartPole-v0').unwrapped

print(env.action_space)                    # 动作空间,输出的内容看不懂
print(env.action_space.n)                  # 输出动作个数
print(env.action_space.sample())           # 从动作空间中随机选取一个动作 (0或1)
print(env.observation_space)               # 查看状态空间
print(env.observation_space.shape[0])      # 输出列数,即输出状态个数
print(env.observation_space.high)          # 查看状态的最高值
print(env.observation_space.low)           # 查看状态的最低值
# # # 证明随机抽取的动作(0或1)为int型 # # #
ENV_A_SHAPE = 0 if isinstance(env.action_space.sample(), int) else env.action_space.sample().shape
print(ENV_A_SHAPE)
# # # # # # # # # # # # # # # # # # # # #

# 显示CartPole环境
for i_episode in range(400):                                                        # 400个episode
    s = env.reset()                                                                 # 重置环境
    while True:                                                                     # 开始一个episode
        env.render()                                                                # 显示动画
        a = env.action_space.sample()                                               # 随机选取动作
        s_, r, done, info = env.step(a)                                             # 执行动作,获得反馈
        if done:                                                                    # 如果符合终止条件
            break                                                                   # 跳出本次的episode

运行,得到

1
2
3
4
5
6
7
8
Discrete(2)
2
0
Box(4,)
4
[4.8000002e+00 3.4028235e+38 4.1887903e-01 3.4028235e+38]
[-4.8000002e+00 -3.4028235e+38 -4.1887903e-01 -3.4028235e+38]
0

显示动画
在这里插入图片描述