记录一个刚学习到的gym使用的点,就是gym.ObservationWrapper使用时的注意点——reset和step函数可以覆盖observation函数。

给出代码:

import gym

class Wrapper(gym.ObservationWrapper):
def __init__(self, env):
super(Wrapper, self).__init__(env) def reset(self):
obs = self.env.reset()
print(obs)
return obs
# return self.observation(obs) def step(self, action):
obs, reward, is_done, info = self.env.step(action)
print(obs)
return obs, reward, is_done, info
# return self.observation(obs), reward, is_done, info def observation(self, observation):
observation += 100
return observation env=gym.make("CartPole-v0")
env = Wrapper(env)
print("reset:")
print(env.reset())
print("step:")
print(env.step(0)[0])

运行:

可以看到,继承gym.ObservationWrapper类后,如果重写reset函数或step函数,那么对应的返回的observation也不会被该类的observation函数所处理。

如果我们把reset函数和step函数注释掉,再次运行可以看到运行结果:

=======================================

那么在继承gym.ObservationWrapper类后,如果重写reset函数或step函数,同时又希望对应的返回的observation被该类的observation函数所处理,那么我们可以做如下的修改:

import gym

class Wrapper(gym.ObservationWrapper):
def __init__(self, env):
super(Wrapper, self).__init__(env) def reset(self):
obs = self.env.reset()
print(obs)
# return obs
return self.observation(obs) def step(self, action):
obs, reward, is_done, info = self.env.step(action)
print(obs)
# return obs, reward, is_done, info
return self.observation(obs), reward, is_done, info def observation(self, observation):
observation += 100
return observation env=gym.make("CartPole-v0")
env = Wrapper(env)
print("reset:")
print(env.reset())
print("step:")
print(env.step(0)[0])

运行结果:

---------------------------------------------------------------------------

继承gym.ObservationWrapper类后reset和step函数的使用可以具体看下ObservationWrapper类的实现:

gym.ObservationWrapper使用时的注意点——reset和step函数可以覆盖observation函数的更多相关文章

  1. [备忘][转]rsync使用时的常见问题

    sync使用时的常见问题: 错误1: rsync: read error: Connection reset by peer (104) rsync error: error in rsync pro ...

  2. MySQL服务启动:某些服务在未由其他服务或程序使用时将自动停止

    这几天因为工作需求,需要把MySQL请出来,所以将尘封已久的MySQL进行启动.可是事与愿违,兴许是许久没有访问MySQL了,MySQL生气的不理我,并向外抛出一阵阵报错.1.其中一个是:Window ...

  3. Cookie使用时需要注意个数及大小限制

    各浏览器对Cookie有一定的限制,在使用时需要格外注意. 各浏览器之间对cookie的不同限制:   IE6.0 IE7.0/8.0/9.0+ Opera FF Safari Chrome cook ...

  4. EntityFrameWork 使用时碰到的小问题

    EntityFrameWork 使用时碰到的小问题 1,在使用orm访问数据库的相目里,也要引用EntityFrameWork.dll,否则无法使用orm 否则,编译错误 错误 5 "Sys ...

  5. MySQL 安装和启动服务,“本地计算机 上的 MySQL 服务启动后停止。某些服务在未由其他服务或程序使用时将自动停止。”

    MySQL 安装和启动服务,以及遇到的问题 MySQL版本: mysql-5.7.13-winx64.zip (免安装,解压放到程序文件夹即可,比如 C:\Program Files\mysql-5. ...

  6. MaterialCalendarView使用时遇到的问题

    一.概述 MaterialCalendarView是一个开源项目.功能强大支持多选.单选.标注等. 二.问题 1.其继承自ViewGroup,故与CalendarView半毛钱关系都没有,完全是一个新 ...

  7. 小白学数据分析----->移动游戏的使用时长分析

    写下该文章,是因为之前看到了几款游戏一个典型的玩家刺激活动,在<多塔联盟>,<萌江湖>等多款游戏的设计中都有体现,如下图所示: 这个功能点的设计,今天在这里讲的更多的还是跟数据 ...

  8. VS2010 使用时选择代码或双击时出错,点击窗口按钮后VS自动重启问题

    VS2010 使用时选择代码或双击时出错崩溃,点击窗口按钮后VS自动重启问题 下载补丁,打上补丁之后,重启电脑,解决了问题. WindowsXP的下载地址:Windows XP 更新程序 (KB971 ...

  9. [开发笔记]-sqlite数据库在使用时遇到的奇葩问题记录

    有时候做些简单的项目一般都会选择sqlite数据库,优点有很多,这里就不详细说了. 在此主要记录一些平时在使用时遇到的问题及解决方法.希望能对大家有所帮助. --------------------- ...

  10. 本地计算机上的OracleOraDb11g_home1TNSListener服务启动后停止。某些服务在未由其他服务或程序使用时将自动停止。——Oracle监听器服务无法启动!

    问题: oracle服务设置为手动启动.但是开机后手动启动监听服务后弹出框,提示“本地计算机上的OracleOraDb11g_home1TNSListener服务启动后停止.某些服务在未由其他服务或程 ...

随机推荐

  1. 项目管理--PMBOK 读书笔记(11)【项目风险管理】

    1.风险分解结构(RBS): RBS 有两个含义,一个是资源分解结构(Resource),一个是风险分解结构(Risk). 1)技术风险 2)管理风险 3)商业风险 4)外部风险   2.核对单 核对 ...

  2. vue使用wx-open-launch-weapp

    vue使用wx-open-launch-weapp 官方文档 <template> <div style="width: 100%; height: 100%;" ...

  3. Thanos解码:打造企业级云原生监控解决方案

    本文深入探讨了Thanos技术在云原生监控领域的应用,详细介绍了Thanos的基本概念.核心组件.安装配置步骤以及一个实战案例,帮助读者理解如何利用Thanos解决大规模监控数据的存储.查询和高可用性 ...

  4. 哈啰面试:说说Dubbo运行原理?

    Dubbo 是一款高性能.轻量级的开源 RPC(远程过程调用)框架,主要用于构建分布式服务和微服务架构.那 Dubbo 又是如何运行的呢?让我们一起来看. 1.核心组件 要说 Dubbo 运行流程就不 ...

  5. nginx 信号量

    nginx支持的信号量 TERM, INT fast shutdown QUIT graceful shutdown HUP changing configuration, keeping up wi ...

  6. CSS和CSS3(背景,图片,浮动等)

    CSS和CSS3背景图片 CSS的背景,无法伸缩图片. <!DOCTYPE html> <html lang="en"> <head> < ...

  7. HCIA基本命令

    ACLDHCPNATSTP-RSTP-MSTPVLANVLAN间路由VRRP链路聚合路由

  8. .NET Framework 4 请求https接口

    using System; using System.Collections.Generic; using System.IO; using System.Linq; using System.Net ...

  9. CF1862C 题解

    考虑每个木板在水平放置后对每个位置上产生的贡献. 稍微手玩几组样例: 不难发现一个高度为 \(h\) 的木板在水平放置后会是位置 \([1,h]\) 上高度增加 \(1\). 但是高度最大是 \(10 ...

  10. Nginx 可视化配置神器NginxConfig

    Nginx 是前后端开发工程师必须掌握的神器.该神器有很多使用场景:比如反向代理.负载均衡.动静分离.跨域等等. 把 Nginx 下载下来打开 conf 文件夹的 nginx.conf 文件,Ngin ...