强化学习——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 |
显示动画