动手实现RL
运行一个环境(environment)
运行一维一级倒立摆环境:
import gym
env = gym.make('CartPole-v0')
env.reset()
for _ in range(1000):
env.render()
env.step(env.action_space.sample())
一个典型的agent-environment loop 的实现
import gym
#建立一个环境
env = gym.make('CartPole-v0')
for i_episode in range(20):
#给环境一个监视
observation = env.reset()
for t in range(100):
env.render()
print(observation)
#确定事件
action = env.action_space.sample()
observation, reward, done, info = env.step(action)
if done:
print("Episode finished after {} timesteps".format(t+1))
break
环境的step 函数返回我们需要的信息,step 函数返回四个值,
1、observation (object):观察,一个与环境相关的对象描述你观察到的环境。如相机的像素信息,机器人的角速度和角加速度,棋盘游戏中的棋盘状态。
2、reward (float):回报,之前行为获得的所有回报之和。不同环境的计算方式不一,但目标总是增加自己的总回报。
3、done (boolean):判断是否到了重新设定(reset)环境的时刻了。done 为true 说明该episode 完成。
4、info(dict):用于调试的诊断信息。但是,正式的评价这不允许使用该信息进行学习。
常用的gym包含的包
from gym import spaces
from gym import envs