gym是一个研究和开发强化学习相关算法的仿真平台。


1、hello world

  1. import gym
  2. env = gym.make('CartPole-v0') # 构造一个初始化环境
  3. status = env.reset() #通过重置来启动环境,返回当前环境的状态
  4. actions = env.action_space # 获取动作
  5. for _ in range(1000): #1000帧
  6. env.render() #每一帧重新渲染环境
  7. env.step(env.action_space.sample()) # 选择一个随机的动作
  8. env.close() # 关闭环境

2、查看所有的环境列表

  1. from gym import envs
  2. print(envs.registry.all())

3、env.step返回信息

env.step() 会返回 4 个参数:

  • 观测 Observation (Object):当前 step 执行后,环境的观测(类型为对象)。例如,从相机获取的像素点,机器人各个关节的角度或棋盘游戏当前的状态等;
  • 奖励 Reward (Float): 执行上一步动作(action)后,智体(agent)获得的奖励(浮点类型),不同的环境中奖励值变化范围也不相同,但是强化学习的目标就是使得总奖励值最大;
  • 完成 Done (Boolen): 表示是否需要将环境重置 env.reset。大多数情况下,当 DoneTrue 时,就表明当前回合(episode)或者试验(tial)结束。例如当机器人摔倒或者掉出台面,就应当终止当前回合进行重置(reset);
  • 信息 Info (Dict): 针对调试过程的诊断信息。在标准的智体仿真评估当中不会使用到这个 info,具体用到的时候再说。

4、运行结果展示

image.png