【四】gym搭建自己的环境,全网最详细版本,3分钟你就学会了!
相关文章:
【四】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分钟你就学会了!的更多相关文章
- 四、python解释器、环境变量和多版本共存
目录 一.python解释器 1.python发展方向 2.python解释器 1.历史 2.版本 3.下载 4.安装 5.使用 二.环境变量与多版本共存 环境变量设置 多版本共存 三.运行pytho ...
- 全网最新方法:Win10下如何安装和搭建appium自动化测试环境
为了方便大家,下面是本人安装和搭建appium所需要的软件,自取. 链接:https://pan.baidu.com/s/1wl5Xnos4BmnSZsBRd6B5YA#list/path=%2F ...
- 单机搭建Android开发环境(四)
单机搭建安卓开发环境,前三篇主要是磨刀霍霍,这一篇将重点介绍JDK.REPO.GIT及编译工具的安装,下载项目代码并编译.特别说明,以下操作基于64位12.04 Server版Ubuntu.若采用其他 ...
- 全网最详细的大数据集群环境下多个不同版本的Cloudera Hue之间的界面对比(图文详解)
不多说,直接上干货! 为什么要写这么一篇博文呢? 是因为啊,对于Hue不同版本之间,其实,差异还是相对来说有点大的,具体,大家在使用的时候亲身体会就知道了,比如一些提示和界面. 安装Hue后的一些功能 ...
- 自定义搭建PHP开发环境
学习了一段时间php了,因为之前是刚接触php,所以用的是集成安装包(wamp).现在想进一步了解apache.mysql.php之间的关系以及提升自己所以进行自定义搭建PHP开发环境.废话不多说,请 ...
- 在Eclipse下搭建Android开发环境教程
我们昨天向各位介绍了<在NetBeans上搭建Android SDK环境>,前不久也介绍过<在MyEclipse 8.6上搭建Android开发环境>, 都受到了读者的欢迎.但 ...
- 第二章 搭建Android开发环境--读书笔记
俗话说,工欲善其事,必先利其器,对于Android驱动开发来说,首先我们要做的就是搭建Android开发环境,我们首先要配置Linux驱动的开发环境,接着还得配置开发Android应用程序以及Andr ...
- 单机搭建Android开发环境(二)
前文介绍了如何优化SSD和内存,以发挥开发主机的最佳性能,同时提到在SSD上创建虚拟机.为什么不装双系统呢?双系统性能应该会更好!采用Windows+虚拟机的方式,主要是考虑到安卓开发和日常办公两方面 ...
- 五步搞定Android开发环境部署——非常详细的Android开发环境搭建教程
在windows安装Android的开发环境不简单也说不上算复杂,本文写给第一次想在自己Windows上建立Android开发环境投入Android浪潮的朋友们,为了确保大家能顺利完成开发环境的搭 ...
- 【原创】windows下搭建vue开发环境+IIS部署
[原创]win10下搭建vue开发环境 如果要转发,请注明原作者和原产地,谢谢! 特别说明:下面任何命令都是在windows的命令行工具下进行输入,打开命令行工具的快捷方式如下图: 详细的安 ...
随机推荐
- Linux系统用户态和内核态
Unix/Linux的体系架构 如上图所示,从宏观上来看,Linux操作系统的体系架构分为用户态和内核态(或者用户空间和内核空间).内核从本质上看是一种软件-----控制计算机的硬件资源,并提供上层应 ...
- 【JAVA基础】错误捕获try-catch
错误捕获try-catch 使用BaseController统一管理 项目结构 UserController package com.cy.store.controller; import com.c ...
- 【库函数】Qt中Json的操作
参考博客: https://blog.csdn.net/hp_cpp/article/details/80338116 从文件中读取json https://www.cnblogs.com/ybqjy ...
- 【MFC】CListCtrl 如何设置单元格颜色?
CListCtrl默认可设置的内容很少,如单元格颜色默认无法设置.若想设置单元格颜色,需要对CListCtrl进行拓展,已有老外为我们写好demo,这里对其中原理.设置方法进行一个解析. 其原理是:设 ...
- 关于“Github上传以及Clone时发生的 Failed to connect to github.com port 443: Timed out 问题解法记录
本文是记录关于如何解决 "Github上传以及Clone时发生的 Failed to connect to github.com port 443: Timed out 错误" 看 ...
- 密集计算场景下的 JNI 实战
作者:vivo 互联网服务器团队- Wei Qianzi.Li Haoxuan 在 Java 发展历程中,JNI 一直都是一个不可或缺的角色,但是在实际的项目开发中,JNI 这项技术应用的很少.在笔者 ...
- 安全情报 | Pypi再现窃密攻击投毒
概述 悬镜安全自研的开源组件投毒检测平台通过对主流开源软件仓库(包括Pypi.NPM.Ruby等)发布的组件包进行持续性监控和自动化代码安全分析,同时结合专家安全经验复审,能够及时发现组件包投毒事件并 ...
- 森林消防智慧预警:火灾监测 Web GIS 可视化平台
前言 森林火灾是一种突发性强.破坏性大.处置救助较为困难的自然灾害.2021 年前三季度全国共发生森林火灾 527 起,受害森林面积约 2628 公顷,15 人死亡:发生草原火灾 12 起,受害草原面 ...
- 什么是全同态加密(FHE)中的自举(Bootstrapping)?
PrimiHub一款由密码学专家团队打造的开源隐私计算平台,专注于分享数据安全.密码学.联邦学习.同态加密等隐私计算领域的技术和内容. 全同态加密(Fully Homomorphic Encrypti ...
- uni-app 预览pdf文件
安卓uni-app实现pdf文件预览功能: 1.https://mozilla.github.io/pdf.js/getting_started/#download下载 放在根目录下, 2.新建一个w ...



