gym/Gymnasium强化学习玩推箱子游戏

news2024/11/15 8:52:57

gym/Gymnasium强化学习玩推箱子游戏

在这里插入图片描述

gym 框架

源码 https://github.com/openai/gym
文档 https://www.gymlibrary.dev/

自 2021 年以来一直维护 Gym 的团队已将所有未来的开发转移到 Gymnasium,这是 Gym 的替代品(将 gymnasium 导入为 gym),Gym 将不会收到任何未来的更新。请尽快切换到 Gymnasium

Gymnasium 框架

源码 https://github.com/Farama-Foundation/Gymnasium
文档 https://gymnasium.farama.org/

推箱子环境

源码 https://github.com/mpSchrader/gym-sokoban

我用的环境是:

$ python --version
  Python 3.7.16

$ python -m pip list 

Package            Version
------------------ ---------
certifi            2022.12.7
charset-normalizer 3.3.2
cloudpickle        2.2.1

gym                0.26.2
gym-notices        0.0.8
gym-sokoban        0.0.6

idna               3.7
imageio            2.31.2
importlib-metadata 6.7.0
numpy              1.21.6
Pillow             9.5.0
pip                22.3.1
pygame             2.6.0
requests           2.31.0
setuptools         65.6.3
tqdm               4.66.5
typing_extensions  4.7.1
urllib3            2.0.7
wheel              0.37.1
zipp               3.15.0

安装

我用的是 Python 3.7.16

conda create -p ./venv python=3.7
conda activate ./venv 

直接 pip :

python -m pip install gym-sokoban

或者源码安装

git clone git@github.com:mpSchrader/gym-sokoban.git
cd gym-sokoban
python -m pip install -e .

然后跑代码测试

test.py

import gym
import gym_sokoban

env = gym.make('Sokoban-v2')

# 初始化环境
observation = env.reset()

for t in range(10000):

    env.render(mode='human')

    action = env.action_space.sample()
    observation, reward, done, info = env.step(action)

    print(f"Step {t}: Action={action}, Reward={reward}, Done={done}, Info={info}")

    if done:
        observation = env.reset()

env.close()

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

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

相关文章

k8s工作负载控制器--DaemonSet

文章目录 一、概述二、适用场景三、基本操作1、官网的DaemonSet资源清单2、字段解释3、编写DaemonSet资源清单4、基于yaml创建DaemonSet5、注意点5.1、必须字段5.2、DaemonSet 对象的名称5.3、.spec.selector 与 .spec.template.metadata.labels之间的关系 6、查看DaemonSet6.1…

主成分分析和线性判别分析

主成分分析 (PCA) PCA 是一种线性降维方法,通过投影到主成分空间,尽可能保留数据的方差。 原理 PCA 通过寻找数据投影后方差最大的方向,主成分是这些方向上的正交向量。 公式推理 对数据中心化: 其中,μ 是数据的…

姿态矫正app-不良坐姿语音提示

“让爷康康”是一款应用于安卓平台的手机应用,可以实时监测不良坐姿并给出语音提示。本项目主要基于 [Tensorflow Lite 官方示例 - 姿态估计] 文件结构 ├───android │ ├───app │ │ └───src │ └───gradle ├───doc_images ├───…

科普文:JUC系列之Java中7种阻塞队列DelayQueue用法

阻塞队列DelayQueue是一种无界阻塞队列,‌用于放置实现了Delayed接口的对象。‌这些对象只能在其到期时才能从队列中取走,‌这种队列是有序的,‌即队头对象的延迟到期时间最长。‌如果没有任何延迟到期的对象,‌那么就不会有任何头…

示例:在ML.NET中应用Model Builder模型生成器构建图片对象检测模型

一、目的:ML.NET 是一个开源且跨平台的机器学习框架,专为 .NET 开发人员设计。它允许你在 .NET 应用程序中构建、训练和部署机器学习模型,而无需离开 .NET 生态系统。ML.NET 支持多种机器学习任务,包括分类、回归、聚类、异常检测…

五、栈与队列(2)

五、栈与队列(2) [150. 逆波兰表达式求值 ](https://leetcode.cn/problems/evaluate-reverse-polish-notation/description/)[239. 滑动窗口最大值 ](https://leetcode.cn/problems/sliding-window-maximum/description/)[347.前 K 个高频元素 ](https:/…

python学习(day1)

1.Python 是大小写敏感的语言。 比如 print 函数名,该函数定义就是全部小写的, 不能写成 Print 或者 PRINT。 2.在Python语言中也会涉及到 对象, 这些对象包含了一定的数据信息。 Python语言中,所有的 数据 都被称之为 对象。 …

Docker 环境下使用 Traefik v3 和 MinIO 快速搭建私有化对象存储服务

上一篇文章中,我们使用 Traefik 新版本完成了本地服务网关的搭建。接下来,来使用 Traefik 的能力,进行一系列相关的基础设施搭建吧。 本篇文章,聊聊 MinIO 的单独使用,以及结合 Traefik 完成私有化 S3 服务的基础搭建…

C语言:qsort详解

在上一篇文章我们大致的了解了回调函数的用法和作用,在这一篇让我们来了解一下在回调函数qsort的使用吧。 一.qsort qsort是一种用来排各种类型数据的函数,利用的是快速排序的方式。说到排序,我们就想到了之前学习的冒泡排序,但…

MySQL数据如何高效实时同步到Elasticsearch?【送源码】

概述 在实际的项目开发与运维过程中,MySQL 常常扮演着业务数据库的核心角色,以其强大的事务处理能力和数据完整性保障,支撑着系统的稳定运行。然而,随着数据量的急剧增长和查询复杂度的不断提升,单一依赖 MySQL 进行高…

文章管理接口——里面有动态SQL编写,在分页查询里

1.实体类和表结构 2. 新增文章分类 接口文档 实现 完整代码放在校验部分 结果: 参数校验(Validation自定义) 对state的校验(已发布|草稿),已有的注解不能满足校验需求,这时就需要自定义校验注解…

Day30 | 62.不同路径 63. 不同路径 II 343.整数拆分 96不同的二叉搜索树

语言 Java 62.不同路径 不同路径 题目 一个机器人位于一个 m x n 网格的左上角 (起始点在下图中标记为 “Start” )。 机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角(在下图中标记为 “Finish” )。 问…

JVM类加载中的双亲委派机制

【1】什么是双亲委派 Java虚拟机对class文件采用的是按需加载的方式,也就是说当需要使用该类时才会将它的class文件加载到内存生成class对象。而且加载某个类的class文件时,Java虚拟机采用的是双亲委派模式,即把请求交由父类处理&#xff0c…

【Git企业级开发实战指南①】Git安装、基本操作!

目录 一、Git是什么?1.1特点1.2功能1.3基本概念 二、Git安装2.1Ubuntu下安装2.2Centos下安装Git 三、Git基本操作3.1创建git本地仓库3.2配置Git3.3 工作区&暂存区&版本库3.4 实操案例3.4.1添加文件 3.5 修改文件3.6版本回退3.7查看历史操作日志3.7撤销修改3…

广东省各区县农业产量数据,数据精度至各区县,2020-2023年四年数据可选!

数据名称: 广东省各区县农业产量数据 数据格式: Shpexcel 数据几何类型: 面 数据坐标系: WGS84 数据时间:2020-2023年 数据来源:广东省统计年鉴 数据字段: 序号字段名称字段说明1province省份名称2city城市名称3county区县名称4cou…

【C++深度探索】红黑树的底层实现机制

🔥 个人主页:大耳朵土土垚 🔥 所属专栏:C从入门至进阶 这里将会不定期更新有关C/C的内容,欢迎大家点赞,收藏,评论🥳🥳🎉🎉🎉 前言 红…

VNC未授权访问漏洞

VNC 是虚拟网络控制台Virtual Network Console的英文缩写。它是一款优秀的远程控制工具软件由美国电话电报公司AT&T的欧洲研究实验室开发。VNC是基于 UNXI 和 Linux 的免费开源软件由 VNC Server 和 VNC Viewer 两部分组成。VNC 默认端口号为 5900、5901。VNC 未授权访问漏…

STM32F407移植LVGL(V8.3版本)

一、LVGL简述 1.丰富且强大的模块化图形组件:按钮、图表、列表、滑条、图片等 2.高级图形引擎:动画、抗锯齿、透明度、平滑滚动、图层混合等效果 3.支持多种输入设备:触摸屏、键盘、编码器、按键等 4.配置可裁剪,最低资源占用&am…

latex中Function函数报错

latex写伪码时,发现报错,截图如下: 解决办法,添加宏包,截图如下: \usepackage{algpseudocode}

虚幻引擎 C++ 实现平面阴影

1、平面阴影介绍 平面阴影是一种相对简单的渲染阴影的方式,可以理解为对一个模型渲染两次,一次是渲染模型本身,另一次是渲染模型的投影。渲染投影可以看作是将模型的顶点变换到地面的投影空间再渲染,可以理解为渲染了一个“压扁”…