相关文章:

【一】gym环境安装以及安装遇到的错误解决

【二】gym初次入门一学就会-简明教程

【三】gym简单画图

【四】gym搭建自己的环境,全网最详细版本,3分钟你就学会了!

【五】gym搭建自己的环境____详细定义自己myenv.py文件

【六】gym搭建自己环境升级版设计,动态障碍------强化学习

gym搭建自己的环境

1.获取了解环境

可以通过gym.make(环境名)的方式获取gym中的环境,anaconda配置的环境,环境在Anaconda3\envs\环境名\Lib\site-packages\gym\envs\__init__.py中获得gym中所有注册的环境信息

Gym是一个包含各种各样强化学习仿真环境的大集合,并且封装成通用的接口暴露给用户,查看所有环境的代码如下:

from gym import envs
print(envs.registry.all())
#> [EnvSpec(DoubleDunk-v0), EnvSpec(InvertedDoublePendulum-v0), EnvSpec(BeamRider-v0), EnvSpec(Phoenix-ram-v0), EnvSpec(Asterix-v0), EnvSpec(TimePilot-v0), EnvSpec(Alien-v0), EnvSpec(Robotank-ram-v0), EnvSpec(CartPole-v0), EnvSpec(Berzerk-v0), EnvSpec(Berzerk-ram-v0), EnvSpec(Gopher-ram-v0), ...

Gym支持将用户制作的环境写入到注册表中,需要执行 gym.make()和在启动时注册register,同时我们可以通过写入新的注册表实现对环境中的某些参数设置进行修改:【这是个demo】

form gym.envs.registration import register
register(
id='CartPole-v2',
entry_point='gym.envs.classic_control:CartPoleEnv',
max_episode_steps=200*4,
reward_threshold=195.0*4,
)
env = gym.make('CartPole-v2')

2.编写文件放置

  • 首先找到自己的环境下面的gym环境包envs:
我的文件路径:H:\Anaconda3-2020.02\envs\tf2\Lib\site-packages\gym\envs

打开后可以看到下面的文件:

  • 之后我们要创建自己的myenv.py文件,这一步很关键,很多教程在这里解释的不清楚,下面我讲详细讲述:

我们下一步要做的就是确保自己创建的环境可以在gym里使用,那么我建议我们可以选择classic_control文件里的cartpole.py来作为我们的myenv.py,简单方便。

只需要把文件复制一下重新命名,然后再把类的名称改一下【CartPoleEnv-----→MyEnv】保存一下即可

class CartPoleEnv(gym.Env):

class MyEnv(gym.Env):
  • 再者,我们需要放置文件了,文件放置有很多种方法
  • H:\Anaconda3-2020.02\envs\tf2\Lib\site-packages\gym\envs\classic_control  可以直接放到文件夹里和别的py程序在一起
  • H:\Anaconda3-2020.02\envs\tf2\Lib\site-packages\gym\envs\classic_control\myenv也可以单独创建一个文件夹放置【推荐这样。不容易以后混淆】

这里文件放置的目录会影响到之后gym注册情况代码添加

注意:这里不推荐把文件放到robotics、mujoco文件夹里,因为这里是gym机器人环境的编辑文件,我们放进去后在运行调试会出错{mujoco_py、mujoco提示未安装,搞搞这个就会挺麻烦的,不符合我们简单教学,之后会在补充这块创建}

3.注册自己的模拟器

再次确认我们的文件放置位置:H:\Anaconda3-2020.02\envs\tf2\Lib\site-packages\gym\envs\classic_control\myenv

  • 注册环境第一步

打开__init__.py文件 添加from gym.envs.classic_control.myenv.myenv import MyEnv

from gym.envs.classic_control.cartpole import CartPoleEnv
from gym.envs.classic_control.mountain_car import MountainCarEnv
from gym.envs.classic_control.continuous_mountain_car import Continuous_MountainCarEnv
from gym.envs.classic_control.pendulum import PendulumEnv
from gym.envs.classic_control.acrobot import AcrobotEnv
#下面一句是我们自己添加的
from gym.envs.classic_control.myenv.myenv import MyEnv

这里解释一下为什么这么添加:第一个:myenv是文件夹名字  第二个:myenv是py文件的文件名   第三个:MyEnv是在文件中定义的环境类名字

{再举个例子,如果你添加方式是H:\Anaconda3-2020.02\envs\tf2\Lib\site-packages\gym\envs\classic_control ,那么你在__init__.py文件添加如下

from gym.envs.classic_control.myenv import MyEnv}

  • 注册环境第二步

返回gym/envs目录,在该目录的__init__.py中注册环境:

添加自己环境,只需要把类命改成自己的即可,放置位置任意,建议放在# Classic下面,方面以后查找不混淆。如果需要调整参数也可以调整像我开头说的那样

#自己创建的环境
register(
id='MyEnv-v0',
entry_point='gym.envs.classic_control:MyEnv',
max_episode_steps=200,
reward_threshold=195.0,
) register(
id='CartPole-v0',
entry_point='gym.envs.classic_control:CartPoleEnv',
max_episode_steps=200,
reward_threshold=195.0,
)

注意:MyEnv-v0中v0代表环境类的版本号,在定义类的的时候名字里可以不加,但是在id注册的时候要加,后面import的时候要加。

至此,就完成了环境的注册,就可以使用自定义的环境了!

4.测试环境

新建一个py文件,简单测试一下

import gym

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

结果如下:

平衡小车环境成功。

5.注意事项

注意:MyEnv-v0中v0代表环境类的版本号,在定义类的的时候名字里可以不加,但是在id注册的时候要加,后面import的时候要加。

注意:MyEnv-v0中v0代表环境类的版本号,在定义类的的时候名字里可以不加,但是在id注册的时候要加,后面import的时候要加。

注意:MyEnv-v0中v0代表环境类的版本号,在定义类的的时候名字里可以不加,但是在id注册的时候要加,后面import的时候要加。

 

【四】gym搭建自己的环境,全网最详细版本,3分钟你就学会了!的更多相关文章

  1. 四、python解释器、环境变量和多版本共存

    目录 一.python解释器 1.python发展方向 2.python解释器 1.历史 2.版本 3.下载 4.安装 5.使用 二.环境变量与多版本共存 环境变量设置 多版本共存 三.运行pytho ...

  2. 全网最新方法:Win10下如何安装和搭建appium自动化测试环境

    为了方便大家,下面是本人安装和搭建appium所需要的软件,自取. 链接:https://pan.baidu.com/s/1wl5Xnos4BmnSZsBRd6B5YA#list/path=%2F  ...

  3. 单机搭建Android开发环境(四)

    单机搭建安卓开发环境,前三篇主要是磨刀霍霍,这一篇将重点介绍JDK.REPO.GIT及编译工具的安装,下载项目代码并编译.特别说明,以下操作基于64位12.04 Server版Ubuntu.若采用其他 ...

  4. 全网最详细的大数据集群环境下多个不同版本的Cloudera Hue之间的界面对比(图文详解)

    不多说,直接上干货! 为什么要写这么一篇博文呢? 是因为啊,对于Hue不同版本之间,其实,差异还是相对来说有点大的,具体,大家在使用的时候亲身体会就知道了,比如一些提示和界面. 安装Hue后的一些功能 ...

  5. 自定义搭建PHP开发环境

    学习了一段时间php了,因为之前是刚接触php,所以用的是集成安装包(wamp).现在想进一步了解apache.mysql.php之间的关系以及提升自己所以进行自定义搭建PHP开发环境.废话不多说,请 ...

  6. 在Eclipse下搭建Android开发环境教程

    我们昨天向各位介绍了<在NetBeans上搭建Android SDK环境>,前不久也介绍过<在MyEclipse 8.6上搭建Android开发环境>, 都受到了读者的欢迎.但 ...

  7. 第二章 搭建Android开发环境--读书笔记

    俗话说,工欲善其事,必先利其器,对于Android驱动开发来说,首先我们要做的就是搭建Android开发环境,我们首先要配置Linux驱动的开发环境,接着还得配置开发Android应用程序以及Andr ...

  8. 单机搭建Android开发环境(二)

    前文介绍了如何优化SSD和内存,以发挥开发主机的最佳性能,同时提到在SSD上创建虚拟机.为什么不装双系统呢?双系统性能应该会更好!采用Windows+虚拟机的方式,主要是考虑到安卓开发和日常办公两方面 ...

  9. 五步搞定Android开发环境部署——非常详细的Android开发环境搭建教程

      在windows安装Android的开发环境不简单也说不上算复杂,本文写给第一次想在自己Windows上建立Android开发环境投入Android浪潮的朋友们,为了确保大家能顺利完成开发环境的搭 ...

  10. 【原创】windows下搭建vue开发环境+IIS部署

    [原创]win10下搭建vue开发环境  如果要转发,请注明原作者和原产地,谢谢! 特别说明:下面任何命令都是在windows的命令行工具下进行输入,打开命令行工具的快捷方式如下图:     详细的安 ...

随机推荐

  1. Django中安装websocket

    完整代码: https://gitee.com/mom925/django-system项目结构: 先安装所需库: pip install channels下面将websocket作为插件一样的只需要 ...

  2. STM32CubeMX教程16 DAC - 输出3.3V内任意电压

    1.准备材料 开发板(正点原子stm32f407探索者开发板V2.4) STM32CubeMX软件(Version 6.10.0) keil µVision5 IDE(MDK-Arm) ST-LINK ...

  3. Mysql--编译安装5.7版本

    1 安装环境 1)清除以往mysql残留痕迹(新机不用) yum erase mariadb mariadb-server mariadb-libs mariadb-devel -y userdel ...

  4. PS组件相关BAPI

    一.新增组件BAPI "-----------------------------------------@斌将军-------------------------------------- ...

  5. Jetpack初步了解

    1.为何要引入Jetpack呢? 通常来说,一个Android应用程序至少需要一个Activity,当我们开发小型Android程序时,可能会将大部分代码写在Activity/Fragment中,例如 ...

  6. 技术文档 | 在Jenkins及GitlabCI中集成OpenSCA,轻松实现CI/CD开源风险治理

    ​插播: OpenSCA-cli 现支持通过 homebrew 以及 winget 安装: Mac/Linux brew install opensca-cli Windows winget inst ...

  7. 一键在线获取APP公钥、包名、签名及备案信息方法介绍

    ​ 目录 一键在线获取APP公钥.包名.签名及备案信息方法介绍 摘要 引言 一键获取APP包信息 操作步骤 ​编辑 解析报告 总结 致谢 关键词 参考资料 声明 摘要 本文介绍了一款在线APP解析工具 ...

  8. 你想怎么使用 Serverless 函数计算?(评测赢好礼 )

    随着云计算发展,云原生热度攀升,Serverless 架构崭露头角且发展势头迅猛.不仅被更多开发者所关注,市场占有率也逐年提高.阿里云函数计算(Function Compute)是一个事件驱动的全托管 ...

  9. <vue初体验> 基础知识 3、vue的计数器

    系列导航 <vue初体验> 一. vue的引入和使用体验 <vue初体验> 二. vue的列表展示 <vue初体验> 三. vue的计数器 <vue初体验&g ...

  10. kafka 性能优化与常见问题优化处理方案

    本文为博主原创,未经允许不得转载: 1.  JVM参数优化设置 kafka是scala语言开发,运行在JVM上,需要对JVM参数合理设置,修改bin/kafka-start-server.sh中的jv ...