当前位置: 首页 > ops >正文

Ubuntu安装Gym及其仿真

文章目录

  • 一、Gym的安装
  • 二、Gym注册

一、Gym的安装

1. 命令安装

pip install gym -y

2. 源码安装

git clone https://github.com/openai/gym
cd gym
pip install -e .

3. 示例安装验证
写一示例测试 gym_test.py文件内容如下:

import gym# 创建环境并指定渲染模式
env = gym.make('CartPole-v1', render_mode='human')
env.reset()# 运行1000步
for _ in range(1000):env.render()action = env.action_space.sample()obs, reward, terminated, truncated, info = env.step(action)# 如果环境终止,重置if terminated or truncated:env.reset()
env.close()

测试demo结果如下则安装成功。

# 可视化依赖
pip install pygamepython3 gym_test.py

在这里插入图片描述

测试 gym 能否成功运行 MuJoCo 环境

# version1: 纯gym_version >= '0.26.0'
import gymenv = gym.make("Ant-v4", render_mode="human")
observation, info = env.reset()  # reset() 现在返回 (observation, info)for _ in range(1000):action = env.action_space.sample()observation, reward, terminated, truncated, info = env.step(action)  # 新版返回5个值if terminated or truncated:  # 检查是否终止或截断observation, info = env.reset()  # 重置环境env.close()# version2: 兼容性gym_version各版本
import gym
import warnings# 获取当前 gym 版本
gym_version = gym.__version__
print(f"Using gym version: {gym_version}")# 初始化环境
env = gym.make("Ant-v4", render_mode="human")# 根据版本自适应处理 reset() 返回值
if gym_version >= '0.26.0':observation, info = env.reset()
else:observation = env.reset()info = {}  # 旧版没有 infotry:for _ in range(1000):action = env.action_space.sample()# 根据版本自适应处理 step() 返回值if gym_version >= '0.26.0':observation, reward, terminated, truncated, info = env.step(action)done = terminated or truncatedelse:observation, reward, done, info = env.step(action)truncated = False  # 旧版没有 truncated# 渲染环境if gym_version >= '0.26.0':env.render()  # 新版 render() 不需要参数else:env.render(mode='human')  # 旧版需要指定 mode# 检查是否结束if done:if gym_version >= '0.26.0':observation, info = env.reset()else:observation = env.reset()info = {}except KeyboardInterrupt:print("Simulation interrupted by user")finally:env.close()print("Environment closed")

测试结果如下则成功调用Mujoco环境。
在这里插入图片描述

二、Gym注册

当需要基于Gym基本框架搭建自定义环境时,如何将自己的环境移到gym中,被其所识别,这即是 Gym注册自定义环境 问题。

http://www.xdnf.cn/news/14256.html

相关文章:

  • 基于51单片机的污水ph值和液压监测系统
  • 关于MCU、MPU、SoC、DSP四大类型芯片
  • Python学习小结
  • 山东大学项目实训——基于DeepSeek的智能写作与训练平台(十四)
  • 智能语音交互技术深度解析:从原理到产业实践
  • 访问vLLM启动的大模型,报错The model `XXX/XXX` does not exist
  • 嵌入式开发--汇川伺服干扰造成FDCAN模块错误过多导致死机
  • 芯片测试之 trim修调测试详解
  • AI结构化数据:智能聊天与传统开发的结合
  • Java大模型开发入门 (6/15):对话的灵魂 - 深入理解LangChain4j中的模型、提示和解析器
  • 从0到1掌握数据库安全:用户认证与授权的深度实践
  • ToonMe:照片变卡通,创意无限
  • Java大模型开发入门 (8/15):连接外部世界(上) - RAG入门与文档加载
  • <10>-MySQL索引特性
  • 华为云Flexus+DeepSeek征文|基于华为云Flexus云服务的Dify一键部署
  • HTML+CSS 登陆框动态切换
  • NGINX 四层上游健康检查模块实战`ngx_stream_upstream_hc_module`
  • 会计 - 财务报告
  • 力扣 2616. 最小化数对的最大差值 题解
  • cpu微码大全 微码添加工具 八九代cpu针脚屏蔽图
  • c++ 右值引用移动构造函数
  • 功能安全实战系列10-英飞凌TC3xx_SRI总线监控开发
  • 动态代理选择:JDK vs CGLIB
  • 2.6 激光雷达消息格式
  • ESP32开发-ESP32P4环境配置
  • 【AD笔记】嘉立创元件导入到AD中(原理图-pcd-3D模型)
  • std::ifstream file(filename);详细解释
  • 十字滑台是否可以进行自动化控制?
  • window11等禁止系统更新的设置
  • 【数梦工场】【智慧航空AI大赛】比赛分享 阅读笔记