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

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注册自定义环境 问题。

相关文章:

  • 永磁同步电机控制算法--双矢量模型预测转矩控制MPTC(占空比)
  • Keepalived 高可用
  • MACD指标
  • java中扩展运算符
  • <11>-MySQL事务管理
  • 算法训练第十七天
  • Hugging face 和 魔搭
  • 浅拷贝 与 深拷贝
  • LeetCode - 35. 搜索插入位置
  • 戴维南端接与 RC端接
  • static的三种作用
  • 重读《人件》Peopleware -(16)Ⅲ 适当人选 Ⅰ霍恩布洛尔因素(上)
  • callback的原理和机制
  • <10>-MySQL索引特性
  • 【电声耦合】TaOsSi和NbOsSi超导中的电子-声子耦合
  • c++编译第三方项目报错# pragma warning( disable: 4273)
  • 多线程下 到底是事务内部开启锁 还是先加锁再开启事务?
  • AnimateCC及CreateJS:打飞机的4版本V1、V2、V3、V4
  • hot100 -- 12.栈系列
  • 金蝶云星空BOS开发
  • 小城市做网站/爱站网长尾关键词挖掘工具的作用
  • 南宁做网站开发的公司/百度推广首页登录
  • 网站建设我们的优势/友链交易交易平台
  • 长沙网站设计流程/手机营销软件
  • 最牛视频网站建设/合肥优化排名推广
  • 河南做网站的公司/文大侠seo博客