OpenAI Gym入门与实操(2)

news2024/11/16 10:37:37

本文内容参考:

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.coloradmin.cn/o/713030.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

现代异步存储访问API探索:libaio、io_uring和SPDK

【摘要】 最近的高性能存储设备暴露了现有软件栈的低效,因而催生了对I/O栈的改进。Linux内核的最新API是io_uring。作者提供了第一个针对io_uring的深度研究,并且和libaio、SPDK比较,探讨它的下性能和优缺点。根据作者的发现,&am…

ChatGPT:对教育来说,究竟是机遇,还是风险?

ChatGPT(Chat Generative Pre-trained Transformer)是由美国人工智能研究实验室OpenAI推出的一款人工智能聊天机器人。作为一个大型语言模型,ChatGPT有效结合了大数据、大算力、强算法,拥有较强的语言理解和文本生成能力&#xff…

javaMail之巨坑

使用java实现邮件发送功能&#xff0c;环境&#xff1a;Foxmail 6.5&#xff0c;阿里EasyExcel生成的excel文件&#xff0c;maven依赖如下&#xff1a; <dependency><groupId>com.sun.mail</groupId><artifactId>javax.mail</artifactId><ver…

MySQL - 第12节 - MySQL视图特性

目录 1.MySQL视图特性 2.基本使用 2.1.准备测试表 2.2.创建视图 2.3.修改视图影响基表 2.4.修改基表影响视图 2.5.删除视图 3.视图规则和限制 1.MySQL视图特性 视图的概念&#xff1a; • 视图是一个虚拟表&#xff0c;其内容由查询定义&#xff0c;同真实的表一样&…

一些零散的查询知识

一、all any some 表&#xff1a; all大于所有的值&#xff1a; any some:大于任意一个即可 例题&#xff1a; 大于50部门所有员工工资的人&#xff1a; 等价于&#xff1a; 二、exists关键字 1、exists查询 exists(子查询) 如果有满足条件的记录&#xff0c;那么exi…

nginx配置https加密

以下操作版本为Ubuntu2004&#xff0c;文件位置可能略有不同 https 功能 Web网站的登录页面通常都会使用https加密传输的&#xff0c;加密数据以保障数据的安全&#xff0c;HTTPS能够加密信息&#xff0c;以免敏感信息被第三方获取&#xff0c;所以很多银行网站或电子邮箱等等…

计算机网络 第二章(上)

2.1_1 物理层基本概念_哔哩哔哩_bilibili2.1_1 物理层基本概念是王道计算机考研 计算机网络的第12集视频&#xff0c;该合集共计76集&#xff0c;视频收藏或关注UP主&#xff0c;及时了解更多相关视频内容。https://www.bilibili.com/video/BV19E411D78Q/?p12&spm_id_from…

【近场社交项目】数据库系统期末设计——需求分析部分

【近场社交项目】数据库系统设计——需求分析&#x1f60e; 前言&#x1f64c;1.需求求分析(用户部分为例&#xff09;1.2用户数据字典1.2.1用户信息表&#xff08;数据结构&#xff09;&#xff1a;数据项间的关系和结构定义&#xff1a; 1.2.2.个人资料表&#xff08;数据结构…

10、SpringBoot集成Redis

总体概述 jedis-lettuce-RedisTemplate三者的联系 本地Java连接Redis常见问题 ● bind配置请注释掉 ● 保护模式设置为no ● Linux系统的防火墙设置 ● Redis服务器的IP地址和密码是否正确 ● 忘记写Redis的服务端口号和auth密码 1、集成Jedis 是什么 Jedis Client是Redis官…

【MATLAB笔记】基础函数及向量

一、基础函数绘制 版本&#xff1a;Matlab2021a 实例1&#xff1a;生成向量 >> x0:0.1:30; >> ysin(x).*cos(x); >> plot(x,y) 实例2&#xff1a;创建向量 >> xlinspace(0,2*pi); >> ysin(x) >> plot(x,y) 二、向量的点积 >> a…

ueditor富文本编辑器使用

下载百度富文本编辑器 链接&#xff1a;https://pan.baidu.com/s/1E4K8e0WCy9_L6z0-Dz3JkQ?pwdc2gf 提取码&#xff1a;c2gf <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta name"viewport" co…

pgrouting连通性分析

官方文档 1、安装pgrouting库 参考&#xff1a;pgrouting安装 主要涉及的两个函数&#xff1a; 1、 pgr_createTopology&#xff1a;创建空间拓扑&#xff0c;数据自动保存至新创建的表<edge_table>_vertices_pgr&#xff0c;将空间表的linestr的geometry数据拆分&…

云原生系列之管理docker容器中的数据管理实战

前言 在生产环境中使用docker,一方面需要对数据进行保存或者在多个容器之间进行数据共享; 另一方面在docker的容器被删除之后,并不会保留容器的状态信息。 想要实现docker容器的信息持久化,就涉及到docker的数据管理,今天我们就来聊聊docker数据管理那些事。 文章目录 …

Vue3:在 VSCode 中如何成功安装 Mockjs 及成功引入 Mock 的详细过程

Ⅰ、Mock 简介&#xff1a; 1、什么是 Mock&#xff1f; 其一、Mock 的解释一&#xff1a; Mock 服务是指在测试过程中对于某些复杂&#xff08;或者不太好构造&#xff09;的对象&#xff0c;用一个虚拟的对象替代它&#xff1b;对于前端来说&#xff0c;就是后台数据还没有…

Python编程入门:了解Python及其由来

在计算机编程的世界中&#xff0c;Python已经成为一门备受欢迎的高级编程语言。它的简洁、易读和功能强大使得它成为众多开发者的首选。但你是否了解Python的由来以及为什么它如此受欢迎呢&#xff1f;在本篇博客中&#xff0c;我们将一起探索Python编程语言的起源和一些相关知…

shell中awk命令常用用法总结

1、获取分隔的内容 以点为分隔符获取IP地址的最后一个字段 echo $ip | awk -F . {print $4}

YOLO系列v1-v8

YOLO是Region-free方法&#xff0c;只需要一次扫描&#xff0c;也被称为单阶段&#xff08;1-stage&#xff09;模型。而Region-based方法方法&#xff0c;如mask-rcnn &#xff0c;被称为两阶段&#xff08;2-stage&#xff09;方法。 YOLOv1-v3是原作者&#xff0c;v4和v7是…

【C语言】指针进阶[下](回调函数(模拟实现qsort-采用冒泡方式))

简单不先于复杂&#xff0c;而是在复杂之后。 目录 1. 回调函数 1.1 qsort 函数的使用 1.2 qsort 排序结构体类型 1.3 回调函数模拟实现 qsort&#xff08;排序整型&#xff09; 1.4 回调函数模拟实现 qsort&#xff08;排序结构体类型&#xff09; 1. 回调函数 回…

【WebAssembly】编译c++ Demo ->HelloWorld

好的开始等于成功了一半&#xff0c;本篇逐条讲解如何将一个cpp通过WebAssembly编译并运行在网页上。 一、环境准备 前提条件 需要安装CMake&#xff0c;VS&#xff0c;python2.7及以上 拉取emsdk代码 仓库地址&#xff1a;GitHub - emscripten-core/emsdk: Emscripten SD…

04_前端包管理工具模块化

注意事项: ​ 改模块代码不用重启服务器,修改config文件的时候需要重启服务器 ​ nvm的安装路径和node的安装路径不能在同一路径下面 ​ 有乱码问题使用管理员权限进行使用use方法 下载安装node ​ 使用命令进行安装 1.nvm list 查看已下载所有的node版本 2.nvm install…