OpenAI Gym入门与实操(2)

本文内容参考:

Getting Started With OpenAI Gym | Paperspace Blog,

【强化学习】 OpenAI Gym入门:基础组件(Getting Started With OpenAI Gym: The Basic Building Blocks)_iioSnail的博客-CSDN博客

3. 环境(Environments)

Environment是Gym最核心的一个概念,OpenAI Gym的基本构建块是Env类。它是一个Python类,基本上实现了一个模拟器,该模拟器运行你希望在其中培训智能体的环境。OpenAI Gym有很多环境,一个Environment可以理解为一个游戏,比如你可以把车开到山上、平衡摆动的钟摆、在雅达利游戏中得分,等等。Gym也为你提供了创建自定义环境的能力。

我们从一个名为MountainCar的环境开始,目标是将车开到山顶上。车在一条一维的轨道上,位于两座“山”之间,目标是将车开到右边的山顶上。然而,这辆车的发动机不足以一次翻过这座山,因此,成功的唯一途径是来回推动以建立动量。

The goal of the Mountain Car Environment is to gain momentum and reach the flag.

这个让小车到达山顶就是一个简单的游戏。你可以通过一个如下代码来加载该Environment:

import gym
env = gym.make('MountainCar-v0')

其返回的是一个Env对象。 

环境的基本结构由Gym Env类的observation_space和action_space属性描述。observation_space定义了环境状态观测的结构和合法值。对于不同的环境,观察可以是不同的事物。最常见的形式是游戏的屏幕截图。也可以有其它形式的观测,例如以矢量形式描述的环境的某些特征。

类似地,Env类还定义了一个名为action_space的属性,该属性描述了可以应用于环境的合法操作的数字结构。

  • Action

Action就是Agent可以做出的动作,通常分为离散和连续两种。

  • Observation

游戏Observation的状态。

通过以下命令查看env对象的observation_spaceaction_space属性值:

# Observation and action space 
obs_space = env.observation_space
action_space = env.action_space
print("The observation space: {}".format(obs_space))
print("The action space: {}".format(action_space))

结果如下:

The observation space: Box(2,)
The action space: Discrete(3)

Observation Shape为(2, ) 表示该Environment的Observation是一个2维向量;Discrete(3)表示该Agent可以做3种不同的动作。

对mountain car环境的Observation是一个表示速度和位置的两个数字的矢量。以两山的中点为原点,右为正方向,左为负方向。

Observation空间和Action空间分别由称为Box和Discrete的类表示。这些是Gym提供的多种数据结构之一,用于实现不同场景(离散动作空间、连续动作空间等)的观察和动作空间。

我们将在后续文章进一步探讨这些问题。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/34055.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Blender导出gltf格式ThreeJS不显示问题-

1. 检查代码 import { GLTFLoader } from three/addons/loaders/GLTFLoader.js; 。。。。。。initRoomGltf() {const _this this;// const loader new OBJLoader();const loader new GLTFLoader();// load a resourceloader.load(// resource URL// this.commonFunc.getPat…

vcruntime140_1.dll无法继续执行代码,有哪些方法可以解决?

关于vcruntime140_1.dll无法继续执行代码的错误问题,其实还是非常的普遍的,这属于经常丢失的dll文件之一,当然还有一个vcruntime140.dll也是非常容易丢失的,本文下面会介绍到这两种有啥区别,以及怎么去修复这些文件丢失…

spring复习:(4)AbstractEnvironment

该类中指定了激活profile属性的名称(spring.profiles.active),默认profile属性的名称(spring.profiles.default),以及默认的profile的名字(default)。

【Leetcode】19.删除链表的倒数第 N 个结点

一、题目 1、题目描述 给你一个链表,删除链表的倒数第 n 个结点,并且返回链表的头结点。 示例1: 输入:head = [1,2,3,4,5], n = 2 输出:[1,2,3,5]示例2: 输入:head = [1], n = 1 输出:[]示例3: 输入:head = [1,2], n = 1 输出:[1]提示: 链表中结点的数目为 sz…

【剑指offer专项突破版】二叉树篇——“C“

文章目录 前言一、二叉树剪枝题目分析思路分析代码 二、序列化与反序列化二叉树题目分析思路分析代码 三、从根节点到叶节点的路径数字之和题目分析思路分析代码 四、 向下的路径节点之和题目分析思路分析思路①代码思路②代码 五、节点之和最大的路径题目分析思路分析代码 六、…

XSS注入——DOM型XSS

DOM型xss XSS根据恶意脚本的传递方式可以分为3种,分别为反射型、存储型、DOM型,前面两种恶意脚本都会经过服务器端然后返回给客户端,相对DOM型来说比较好检测与防御,而DOM型不用将恶意脚本传输到服务器在返回客户端,这…

Elasticsearch 地理空间计算

地理位1置搜索:使用查询API进行搜索 1、Geo Distance Query Geo Distance Query是在给定的距离范围内搜索数据的查询。例如,可以搜索给定地理位置附近指定距离内的所有文档。 GET /my_index/_search {"query": {"bool" : {"fi…

9、Redis集群(cluster)

是什么 Redis集群是一个提供在多个Redis节点间共享数据的程序集,Redis集群可以支持多个master 能干嘛 Redis集群支持多个master,每个master又可以挂载多个slave 读写分离 支持数据的高可用 支持海量数据的读写存储操作 由于Cluster自带Sentinel的故障转…

软考高级系统架构设计师(九) 作文模板-论设计模式及其应用(未完待续)

目录 掌握的知识点 创建型 结构型 行为型 掌握的知识点 设计模式分为哪3类 每一类包含哪些具体的设计模式 创建型 创建型模式是对对象实例化过程的抽象,他通过抽象类所定义的接口,封装了系统中对象如何创建、组合等信息。 创建型模式主要用于创建对…

Buildroot 取消默认QT桌面-迅为RK3588开发板

本小节将讲解如何取消掉默认的 qt 桌面。 首先对开发板进行上电,开发板正常启动后,使用命令“cd /etc/init.d”进入到/etc/init.d 目录 下,然后使用以下命令对开机自启动脚本 rcS 进行查看,如下图所示: vi rcS 从上…

视觉SLAM十四讲需要提前知道的数学基础知识

学习视觉SLAM十四讲之前的必备数学基础知识 1. 正交矩阵2. 线性关系3. 求矩阵的逆4. 叉乘5.反对称矩阵6. 复数 1. 正交矩阵 定义: 设n阶矩阵A满足AATATAI ,则称A为正交矩阵 性质: 以下为手写,从小字丑,请多担待。。 …

红色通信史(一):红色通信的萌芽

1927年4月和7月,蒋介石、汪精卫分别在上海、武汉发动“四一二”、“七一五”反革命政变,实行“清党”、“分共”,大肆逮捕和杀害中共党员,制造“白色恐怖”。 面对敌人的残酷镇压,我党决定创建自己的革命军队&#xff…

元宇宙装备展正式拉开帷幕,深眸科技CEO周礼出席产业论坛发表主题演讲

6月27日,一场令人期待已久的工业元宇宙盛会在昆山国际会展中心拉开帷幕,大会由昆山市人民政府主办,昆山市工业和信息化局、赛迪工业和信息化研究院集团(苏州)有限公司联合承办,并得到了十数家单位的支持&am…

计算机网络那些事之 MTU 篇 pt.2

哈喽大家好,我是咸鱼 在《计算机网络那些事之 MTU 篇 》中,咸鱼跟大家介绍了 MTU 是指数据链路层能够传输的最大数据帧的大小 如果发送的数据大于 MTU,则就会进行分片操作(Fragment);如果小于 MTU&#x…

Git安装及使用图文教程详解(附带安装文件)

Git安装及使用图文教程详解(附带安装文件) 原创:丶无殇  2023-06-26 文章目录 下载安装下载安装验证安装成功版本查看 基础指令Git常用指令【首次必须】设置签名用户、邮箱1.初始化本地仓库2.查看本地库状态3.创建文件4.添加文件至暂存区5…

maven打包本地jar到项目中

在maven项目中&#xff0c;我们的项目依赖一般取自local的repository或者远程的repository&#xff0c;比如下面这个配置&#xff1a; maven <dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-generator</artifactId> &l…

C++11新特性(5):多线程

学习C11&#xff0c;根据网上资料的知识总结。 1. 线程创建 1.1 初始函数 #include <iostream> #include <thread> void myfunc(int &a) {cout << "a in myfunc:" << a << endl; }int main() {int a 1;std::thread mythread(…

C1. Make Nonzero Sum (easy version) - 思维

分析&#xff1a; n一但是奇数就一定不行&#xff0c;因为无论有多少-1和1都会导致最后的和是-1或1&#xff0c;每次断开一个区间会改变2&#xff0c;所以一定不行&#xff0c;直接输出-1。 其次&#xff0c;如果数组满足题意也可以一个一个输出每一个下标&#xff0c;遍历数组…

flask socket版本问题

1、版本问题 问题解决 根据官方给定的兼容版本&#xff0c;从socket.io官网CDN下载最新的4.4.1版本js文件&#xff0c;https://cdn.socket.io/。 python-engineio使用版本。需要更新的javascript.socketio包&#xff0c;具体可对照官方文档Requirements部分末尾 https://flask-…

ansible实训-Day3(playbook的原理、结构及其基本使用)

一、前言 该篇是对ansible实训第三天内容的归纳总结&#xff0c;主要包括playbook组件的原理、结构及其基本使用方式。 二、Playbook 原理 Playbook是Ansible的核心组件之一&#xff0c;它是用于定义任务和配置的自动化脚本。 Ansible Playbook使用YAML语法编写&#xff0c;可…