[Python] OpenAI Gym 基本教學

程式語言:Python
Package:gym
官方網址
可用環境

簡介:Reinforcement Learning 的訓練平台

  1. import gym
  2. from gym import envs
  3.  
  4. # 列出可用的遊戲
  5. print(envs.registry.all())
  6.  
  7. # 定義訓練的遊戲
  8. env = gym.make('Pong-v0')
  9. # unwrapped 可以得到更多的資訊,可用 dir 得知可用 method
  10. # env = env.unwrapped
  11.  
  12. # 查看環境中可用的 action 有多少個
  13. print(env.action_space)
  14. # 查看環境中可用的 action 意義,不見得每個遊戲都有
  15. print(env.unwrapped.get_action_meanings())
  16. # 查看環境中可用的 observation 有多少個
  17. print(env.observation_space)
  18. # 查看 observation 最高值
  19. print(env.observation_space.high)
  20. # 查看 observation 最低值
  21. print(env.observation_space.low)
  22.  
  23. for i_episode in range(20):
  24. # 初始化
  25. observation = env.reset()
  26. for t in range(1000):
  27. # 畫圖
  28. env.render()
  29. # 學習到的動作,目前的設定是隨機產生
  30. action = env.action_space.sample()
  31. # 輸入動作,並得到狀態結果
  32. observation, reward, done, info = env.step(action)
  33. '''
  34. observation:環境狀態,像是影像 pixel,角度,角速度等,參數意義必須參照原始碼
  35. reward:越好的結果,會回饋越大的值,若不適用,也可從 observation 自行產生
  36. done:判斷是否達到 game over 的條件,像是生命已結束,或是已經超出範圍
  37. info:debug 用的資訊,不允許使用在學習上
  38. '''
  39. print(observation)
  40. if done:
  41. print("Episode finished after {} timesteps".format(t+1))
  42. break
  43. env.close()
NameFrame Skip kRepeat action probability p
Pong-v02~410.25
Pong-v42~410
PongDeterministic-v0420.25
PongDeterministic-v43420
PongNoFrameskip-v010.25
PongNoFrameskip-v410
1 在每一個 step 從 2,3,4 隨機挑選當作 k
2 在 Space Invaders 中,Deterministic 的設定為 k=3。因為 k=4 會導致將雷射的畫面移除,進而無法判斷雷射
3 Deterministic-v4 是用來評估 Deep Q-Networks

參考

Open AI Gym 簡介與 Q learning 演算法實作
OpenAI gym 环境库
馬斯克的AI野心——OpenAI Gym系統深度解析
Atari Environments

留言