东方耀AI技术分享

标题: 通过安装gym与retro搭建强化学习的实验环境 [打印本页]

作者: 东方耀    时间: 2019-8-18 07:59
标题: 通过安装gym与retro搭建强化学习的实验环境


通过安装gym与retro搭建强化学习的实验环境


gym下载:https://gitee.com/dfy888/gym


retro下载:https://gitee.com/dfy888/retro


先下载zip源码包 通过源码编译的方式安装

系统:Ubuntu18.04

隔离工具:conda

IDE工具:Pycharm

python版本:3.7


安装步骤如下:
1、准备工作(虚拟环境创建与work目录)
  1. conda create -n py3_gym python=3.7

  2. conda activate py3_gym

  3. python3 get-pip.py

  4. pip --version
  5. pip3 --version

  6. cd &  mkdir py3_gym_works

  7. 将gym源码包解压到 py3_gym_works目录下
复制代码

2、打开pycharm 创建项目 关联虚拟环境与py3_gym_works目录
3、开始安装gym

  1. cd gym

  2. pip3 install -e '.[all]'

  3. 会报错:
  4. Building wheel for mujoco-py (setup.py) ... error
  5.   ERROR: Command errored out with exit status 1:
  6. 原因:无法编译mujoco 其需要依赖其他的包
  7. 我们这里暂时不需要用到mujoco 故将
  8. setup.py文件中屏蔽mujoco相关的代码
  9.   # 'mujoco': ['mujoco_py>=1.50, <2.1', 'imageio'],
  10.   # 'robotics': ['mujoco_py>=1.50, <2.1', 'imageio'],

  11. 再次运行:
  12. pip3 install -e '.[all]'   提示成功

  13. pip3 list 可以看到安装的gym
复制代码

4、测试gym是否安装成功,跑下面的代码,显示如下图所示
  1. # -*- coding: utf-8 -*-
  2. __author__ = u'东方耀 微信:dfy_88888'
  3. __date__ = '2019/8/18 上午08:43'
  4. __product__ = 'PyCharm'
  5. __filename__ = 'demo_gym'

  6. import gym


  7. env = gym.make('CartPole-v0')

  8. for i_episode in range(10):
  9.     # Reset the environment's state. Returns observation.
  10.     observation = env.reset()
  11.     print('i_episode回合数:', i_episode)
  12.     for t in range(100):
  13.         # Render one frame of the environment.
  14.         env.render()  # 更新动画
  15.         action = env.action_space.sample()
  16.         # Step the environment by one timestep. Returns observation, reward, done, info.
  17.         observation, reward, done, info = env.step(action)  # 推进一步
  18.         if done:
  19.             env.reset()
  20.             continue
复制代码

5、开始编译安装gym-retro,如下图所示

  1. cd retro

  2. pip3 install cmake

  3. pip3 install -e .

  4. sudo apt-get install capnproto libcapnp-dev libqt5opengl5-dev qtbase5-dev
  5. cmake . -DBUILD_UI=ON -UPYLIB_DIRECTORY
  6. make -j$(grep -c ^processor /proc/cpuinfo)
  7. ./gym-retro-integration
复制代码

6、代码测试retro是否成功,如下图所示
  1. # -*- coding: utf-8 -*-
  2. __author__ = u'东方耀 微信:dfy_88888'
  3. __date__ = '2019/8/18 上午09:15'
  4. __product__ = 'PyCharm'
  5. __filename__ = 'retro_demo'

  6. import retro


  7. def main():
  8.     # Create a Gym Environment
  9.     env = retro.make(game='Airstriker-Genesis')
  10.     # reset(self): Reset the environment's state. Returns observation.
  11.     obs = env.reset()
  12.     while True:
  13.         # Step the environment by one timestep. Returns observation, reward, done, info.
  14.         obs, rew, done, info = env.step(env.action_space.sample())
  15.         # render(self, mode='human'): Render one frame of the environment.
  16.         # The default mode will do something human friendly, such as pop up a window.
  17.         env.render()
  18.         if done:
  19.             obs = env.reset()
  20.     env.close()


  21. if __name__ == "__main__":
  22.     main()

复制代码

7、
8、










欢迎光临 东方耀AI技术分享 (http://www.ai111.vip/) Powered by Discuz! X3.4