gym初级——初识gym环境(一)

    技术2022-07-10  114

    描述

    从今天开始,有机会我会写一些有关强化学习的博客

    这一篇是关于gym环境的

    环境

    import gym env = gym.make('CartPole-v0') env.reset() for _ in range(1000): env.render() env.step(env.action_space.sample()) # take a random action env.close()

    运行这段程序,是一个小车倒立摆的环境 可以把CartPole-v0替换为其他环境,比如 MountainCar-v0 山谷里有一个小车 MsPacman-v0 迷宫里吃豆子(依赖Atari) or Hopper-v1 这个我运行失败了,因为它依赖mujoco

    reset(self):重置环境的状态。返回的观察。 step(self, action):一步一步地调整环境。返回观察,奖励,完成,信息。 render(self, mode='human'):渲染环境的一帧。默认模式会做一些对人友好的事情,比如弹出一个窗口。

    强化学习写法

    我们都知道,强化学习需要的基本要素,agent与environment交互,执行action,得到observation和reward

    使用基本思路写下新的代码

    import gym env = gym.make('CartPole-v0') for i_episode in range(20): print("episode "+str(i_episode)) observation = env.reset() for t in range(100): env.render() print("observation: "+str(observation)) action = env.action_space.sample() observation, reward, done, info = env.step(action) print("action: "+str(action)+" reward: "+str(reward)+" done: "+str(done)+" info: "+str(info)) if done: print("Episode finished after {} timesteps".format(t+1)) break env.close()

    输出长得这样 根据我的判断

    observation 四维数据代表[小车速度,小车加速度,单摆角速度,单摆角加速度]reward 1=单摆没倒;0=单摆倒了action 0/1 = 小车向左或向右done: 这里是单摆要倒了作为结束条件,执行代码可以发现每次done的时候,observation的第三项,也就是单摆角速度都很大,大约在±0.2左右时done会变为true,估计是gym的api对这个单摆环境的提前设置

    好的,今天就到这里

    Processed: 0.011, SQL: 9