首页 > 编程语言 >【Python】安装配置gym

【Python】安装配置gym

时间:2024-04-20 13:12:23浏览次数:33  
标签:space Python gym v0 env action import 安装

gym是python中的一个强化学习环境,想要完整配置并跑起来坑还是比较多的。

下面记录一下Windows完整安装过程,Linux下过程基本类似。

1. 执行pip install gym直接安装的是0.26.2版本,网上常见的代码无法兼容,这里安装0.25.2版,并且安装对应的pygame。

执行:

pip install gym==0.25.2
pip install pygame==2.1.2

完成后常见的cartpole和mountaincar就可以执行了,下面给个显示例子并打印出所有可模拟的环境:

import gym
from gym import envs
import warnings
import time
warnings.filterwarnings("ignore")

for env in envs.registry.all():
    print(env.id)

env = gym.make("CartPole-v1")
#action_space_dim = env.action_space.n  

for i in range(3000):
    state = env.reset()

    while True:
        env.render()
        
        action = env.action_space.sample()

        next_state, reward, done, _ = env.step(action)

        if done:
            break

结果如下:

默认支持的环境还是比较少的,如果想要更多的环境,如atari,box2d或者mujoco需要做下面的操作。

2. 执行:

pip install swig
pip install gym[all] 

3. 完成后可能会出现环境缺少ale_c.dll文件问题,这里给一个下载链接,下载后拷贝到C:\Users\xxx\AppData\Local\Programs\Python\Python37\Lib\site-packages\atari_py\ale_interface目录下。Linux一般没有这个问题,Windows也可能没有这个问题,没有遇到可以忽略。

4. 完成后执行下面命令下载Atari游戏Rom,执行AutoROM时有时可能会卡: 

pip install autorom
pip install --upgrade AutoROM
AutoROM --accept-license

完成后这个C:\Users\xxx\AppData\Local\Programs\Python\Python37\Lib\site-packages\AutoROM\roms目录下应该有很多bin文件。

5. 显示atari环境代码:

import gym
from gym import envs
import warnings
import time
warnings.filterwarnings("ignore")

env = gym.make('Pong-v0', render_mode='human')

obs = env.reset()
for i in range(1000):
    action = env.action_space.sample()
    obs, reward, done, info = env.step(action)
    time.sleep(0.01)
env.close()

结果如下:

6. 安装mujoco相对比较会更坑一些。首先这里下载mujoco210版本,并且将文件拷贝到C:\Users\xxx\.mujoco\目录,形成C:\Users\xxx\.mujoco\mujoco210目录,并且配置Path环境变量到bin目录,重启电脑。

7. 然后安装mujoco_py,如果提前安装了,先执行pip uninstall mujoco_py删除掉。然后这里下载,源码安装。

安装前先搜到源码中dist.ext_modules部分,并改为下面代码:

dist.ext_modules = cythonize([self.extension],compiler_directives={'legacy_implicit_noexcept': True})

执行python setup.py install安装,安装完成后再执行pip uninstall mujoco_py,然后就可以了,至于为什么最后要再执行uninstall命令,我也不知道,反正这样就可以了。

8. 显示mujoco的测试代码:

import gym
env = gym.make('Humanoid-v4')

from gym import envs
print(envs.registry.all())    # print the available environments

print(env.action_space)
print(env.observation_space)
print(env.observation_space.high)
print(env.observation_space.low)

for i_episode in range(200):
    observation = env.reset()
    for t in range(100):
        env.render()
        print(observation)
        action = env.action_space.sample()    # take a random action
        observation, reward, done, info = env.step(action)
        if done:
            print("Episode finished after {} timesteps".format(t+1))
            break
env.close()

结果如下:

 

9. 最后给出一些常见的gym环境,可能会有一些有版本问题,不过错误时有提示:

  1. 经典控制 Classic Control:

    • Acrobot-v1:双摆杆倒立摆问题。
    • CartPole-v1:杆车平衡问题。
    • MountainCar-v0:小车爬山问题。
    • Pendulum-v0:摆杆倒立问题。
    • MountainCarContinuous-v0:连续动作的小车爬山问题。
  2. Box2D:

    • LunarLander-v2:着陆舱着陆问题。
    • LunarLanderContinuous-v2:连续动作的着陆舱着陆问题。
    • BipedalWalker-v3:双足行走机器人问题。
    • BipedalWalkerHardcore-v3:更困难版本的双足行走机器人问题。
    • CarRacing-v0:赛车游戏。
  3. Atari:

    • Pong-v0:乒乓球游戏 Pong。
    • Breakout-v0:打砖块游戏 Breakout。
    • SpaceInvaders-v0:太空侵略者游戏 Space Invaders。
    • MsPacman-v0:吃豆人游戏 Ms. Pacman。
    • Enduro-v0:汽车竞赛游戏 Enduro。
    • BeamRider-v0:射击游戏 Beam Rider。
  4. MuJoCo:

    • HalfCheetah-v3:半身豹机器人问题。
    • Hopper-v3:单腿机器人问题。
    • Walker2d-v3:双足行走机器人问题。
    • Ant-v3:蚂蚁机器人问题。
    • Humanoid-v3:人形机器人问题。
    • HumanoidStandup-v2:人形机器人站立问题。

标签:space,Python,gym,v0,env,action,import,安装
From: https://www.cnblogs.com/tiandsp/p/18124932

相关文章

  • Python与Java数据结构语法区别
    数组参考链接:CS61BPythonzeroedLst=[0,0,0]lst=[4,7,10]lst[0]=5print(lst[0])print(lst)print(len(lst))Javaint[]zeroedArray=newint[3];int[]array={4,7,10};array[0]=5;System.out.println(array[0]);System.out.println(Ar......
  • 分布式文件系统FastDFS安装教程
     转载链路地址https://www.cnblogs.com/handsomeye/p/9451568.html  前言centos7x642009、vmware16pro(网络仅主机模式)安装libfastcommon获取libfastcommon安装包:wgethttps://github.com/happyfish100/libfastcommon/archive/V1.0.38.tar.gz解压安......
  • Python量化交易系统实战_实现股票实盘交易
    作者:麦克煎蛋  出处:https://www.cnblogs.com/mazhiyong/转载请保留这段声明,谢谢!这里以EasyTrader为例,感受下如何实现程序化交易。一、EasyTrader技术原理简介EasyTrader主要原理是利用pywinauto自动获取同花顺上相应控件的值,进行模拟自动化的操作,它给散户提供了一个强大......
  • 1.6K Star 微信自动化,weixin-python,一个与微信交互超强库
    简介提供微信登录,公众号管理,微信支付,微信消息的全套功能安装使用pipsudopipinstallweixin-python使用easy_installsudoeasy_installweixin-python用法参数WEIXIN_TOKEN 必填,微信主动推送消息的TOKENWEIXIN_SENDER 选填,微信发送消息的发送者WEIXIN_EXPIRES_IN......
  • 记录python:类方法
    类方法确实可以访问和修改类变量,因为它们属于类本身而不是任何特定的实例。然而,类方法不能直接访问实例变量,因为这些变量是特定于类的每个实例的。实例变量是由类的实例(即对象)创建的,而类方法是在类级别上定义的,并不与任何特定的实例直接关联。下面是一个例子,它演示了类方法如何访......
  • python中的时间转换,秒级时间戳转string,string转时间
    importtimeimportdatetimedefpaserTime(timestamp):t=time.time()f=time.localtime(timestamp/1000)print(t)#原始时间数据#print(int(t))#秒级时间戳print(int(round(t*1000)))#毫秒级......
  • 利用python收发MQ
    一、收发MQ基础引入stomp包,#-*-coding:utf-8-*-importstompimporttime,randomfromcmd.utilimporttimePaserport=700ip='10.13.69.16'passcode='8JiPUndN'queue_name='/topic/SampleQueue'topic_name='/topic/cweb.t......
  • 涛思数据 TDengine 征稿— 利用python脚本做TDengine性能测试
    【本文正在参与“拥抱开源|涛思数据TDengine有奖征稿】https://marketing.csdn.net/p/0ada836ca30caa924b9baae0fd33857c设备上传的数据具有很明显的物联网特点,通常是时序性的,按时间先后顺序上报,而且写入后,几乎不会修改,主要是查询和统计。针对这些特点,时序数据库TDengine将......
  • linux 手动安装 php composer
    官网说明:composer官网地址下载安装文件:wgethttps://getcomposer.org/installer下载的文件名叫installer,重命名为php文件:mvinstallerphp-setup.phpphp执行安装文件:phpphp-setup.php然后在当前文件夹目录下多出一个文件:composer.phar将该文件移动到bin目录下:sudomvc......
  • 【开源】使用Python+Flask+Mysql快速开发一个用户增删改查系统
    项目演示项目本身很简单,增删改查是几乎所有系统的骨架。正所谓万丈高楼平地起,学会了增删改查,航母就指日可待了:),光速入门,直接看演示图:项目地址https://github.com/mudfish/python-flask-user-crudFlask框架介绍说白了就是一个Web框架,能够让你快速开发出Pythonweb应用。简单易......