common/wrapper.py模块:

import gym

class TimeLimit(gym.Wrapper):
def __init__(self, env, max_episode_steps=None):
super(TimeLimit, self).__init__(env)
self._max_episode_steps = max_episode_steps
self._elapsed_steps = 0 def step(self, ac):
observation, reward, done, info = self.env.step(ac)
self._elapsed_steps += 1
if self._elapsed_steps >= self._max_episode_steps:
done = True
info['TimeLimit.truncated'] = True
return observation, reward, done, info def reset(self, **kwargs):
self._elapsed_steps = 0
return self.env.reset(**kwargs) class ClipActionsWrapper(gym.Wrapper):
def step(self, action):
import numpy as np
action = np.nan_to_num(action)
action = np.clip(action, self.action_space.low, self.action_space.high)
return self.env.step(action) def reset(self, **kwargs):
return self.env.reset(**kwargs)

两个对gym环境类的包装类,TimeLimit限制环境类env的最大step数,如果到达最大step数后游戏还没有终止则强制返回终止状态done=True,并设置返回信息:info['TimeLimit.truncated'] = True 。

类ClipActionsWrapper对输入给gym环境的动作进行包装,如果输入的action(action为numpy向量)中含有np.nan则置为0,

如果action中的数值大小超过action_space.low和action_space.high则进行clip操作。

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

baselines算法库common/wrapper.py模块分析的更多相关文章

  1. Python标准库笔记(9) — functools模块

    functools 作用于函数的函数 functools 模块提供用于调整或扩展函数和其他可调用对象的工具,而无需完全重写它们. 装饰器 partial 类是 functools 模块提供的主要工具, ...

  2. openstack 中 log模块分析

    1 . 所在模块,一般在openstack/common/log.py,其实最主要的还是调用了python中的logging模块: 入口函数在 def setup(product_name, vers ...

  3. 【Python】【Web.py】详细解读Python的web.py框架下的application.py模块

    详细解读Python的web.py框架下的application.py模块   这篇文章主要介绍了Python的web.py框架下的application.py模块,作者深入分析了web.py的源码, ...

  4. python标准库介绍——12 time 模块详解

    ==time 模块== ``time`` 模块提供了一些处理日期和一天内时间的函数. 它是建立在 C 运行时库的简单封装. 给定的日期和时间可以被表示为浮点型(从参考时间, 通常是 1970.1.1 ...

  5. mahout算法库(四)

    mahout算法库 分为三大块 1.聚类算法 2.协同过滤算法(一般用于推荐) 协同过滤算法也可以称为推荐算法!!! 3.分类算法 算法类 算法名 中文名 分类算法               Log ...

  6. scikit-learn 支持向量机算法库使用小结

    之前通过一个系列对支持向量机(以下简称SVM)算法的原理做了一个总结,本文从实践的角度对scikit-learn SVM算法库的使用做一个小结.scikit-learn SVM算法库封装了libsvm ...

  7. OpenRisc-43-or1200的IF模块分析

    引言 “喂饱饥饿的CPU”,是计算机体系结构设计者时刻要考虑的问题.要解决这个问题,方法大体可分为两部分,第一就是利用principle of locality而引进的cache技术,缩短取指时间,第 ...

  8. OpenRisc-41-or1200的cache模块分析

    引言 为CPU提供足够的,稳定的指令流和数据流是计算机体系结构设计中两个永恒的话题.为了给CPU提供指令流,需要设计分支预测机构,为了给CPU提供数据流,就需要设计cache了.其实,无论是insn还 ...

  9. 常用排序算法的python实现和性能分析

    常用排序算法的python实现和性能分析 一年一度的换工作高峰又到了,HR大概每天都塞几份简历过来,基本上一天安排两个面试的话,当天就只能加班干活了.趁着面试别人的机会,自己也把一些基础算法和一些面试 ...

  10. 【转】python模块分析之unittest测试(五)

    [转]python模块分析之unittest测试(五) 系列文章 python模块分析之random(一) python模块分析之hashlib加密(二) python模块分析之typing(三) p ...

随机推荐

  1. com.netflix.hystrix.exception.HystrixBadRequestException: null

    com.netflix.hystrix.exception.HystrixBadRequestException: null 排查方法:如果有多个feign接口的调用,可以在每个调用的方法加上try- ...

  2. Excel表格Vlookup跨sheet取值,ISNA函数处理匹配不到的空字符串

    Excel表格Vlookup跨sheet取值 =VLOOKUP($A2,Sheet2!$A$2:$D$15,2,FALSE) $A2 代表当前的Sheet1的单元格,数据类型需要与查找的单元格字段类型 ...

  3. c++ 线程使用

    C++中的线程可以通过标准库提供的thread类实现.该类提供了创建和管理线程的方法和函数. 创建线程的方法: #include <thread> ... // 创建一个线程,其执行函数为 ...

  4. Spring之webMvc异常处理

    异常处理可以前端处理,也可以后端处理. 从稳妥的角度出发,两边都应该进行处理. 本文专门阐述如何在服务端进行http请求异常处理. 一.常见的异常类型 当我们做http请求的时候,会有各种各样的可能错 ...

  5. 看李沐的 ViT 串讲

    ViT 概括 论文题目:AN IMAGE IS WORTH 16X16 WORDS: TRANSFORMERS FOR IMAGE RECOGNITION AT SCALE 论文地址:https:// ...

  6. 上交大开源镜像站下架 Docker Hub 镜像

    ​ 在现代软件开发中,Docker镜像已经成为不可或缺的工具.然而,最近频频出现的Docker镜像下架事件让许多开发者措手不及.突然失去依赖的镜像,不仅打乱了项目进程,还引发了许多不便.那么,面对Do ...

  7. Linux Driver : gpio-keys

    Linux Driver : gpio-keys的解析 背景 在阅读高通设备树配置一个按键的时候,没有找到按键是在什么时候进行处理的.因此根据仅有的线索gpio-key.c进行分析,发现根据之前的学习 ...

  8. 请查收“国产化率认证报告”(100%)——RK3568J工业核心板

    创龙科技RK3568J核心板获得"100%国产化"认证日前,创龙科技"国产化率100%认证"的核心板再添一员!RK3568J工业核心板(SOM-TL3568)获 ...

  9. SpringBoot实现Mysql读写分离

    前言 在高并发的场景中,关于数据库都有哪些优化的手段? 常用的有以下的实现方法:读写分离.加缓存.主从架构集群.分库分表等,在互联网应用中,大部分都是读多写少的场景,设置两个库,主库和读库. 主库的职 ...

  10. Mybatis ResultMap复杂对象一对一查询结果映射之association

    Mybatis复杂对象映射配置ResultMap的association association:映射到POJO的某个复杂类型属性,比如订单order对象里面包含user对象 表结构 项目结构 pom ...