gym库的基本使用方法,gym库配置要求

首页 > 实用技巧 > 作者:YD1662024-01-02 22:49:07

1、官方主页

gym是强化学习的库,接口简单,并且提供了更新、状态标识、显示等一系列方便的接口,并可以自主设计各类环境。目前最新版本介绍如下

https://gymnasium.farama.org/

2、简单的使用2.1简单的引入包模块

import gymnasium as gym2.2 生成环境make

(1)生成环境通过make方法,简单的例子如下

env = gym.make('FrozenLake-v1', render_mode='rgb_array', is_slippery=False)

(2)注意gym有很多例子***

2.3环境初始化reset

通过reset可以初始化环境

env.reset()2.4控制对象迭代运行step

(1)控制对象迭代运行的操作为step

state, reward, terminated, truncated, info = self.env.step(action)

注意:step函数是action→observation之间的一个映射函数,通过做出动作action,将获得一个怎样的observation以及相应的reward,并判断是否到达终点状态(terminated),并将相应的信息返回

(2)判断是否结束

over = terminated or truncated2.5step返回的几个函数

(1)state,状态

(2)reward,奖励函数

(3)terminated,是否游戏(失败)结束,结束则为true

(4)truncated,崩溃结束

(5)info,信息

2.6关闭环境close

关闭环境的函数如下

env.close()3、FrozenLake-v1游戏的测试3.1 aciton的方向

该游戏中:2向右,1向下,0向左,3向上。如下所示

{0: "←", 1: "↓", 2: "→", 3: "↑"}3.2设定机器人路径并查看输出

(1)编一个程序让机器人手动周一下,查看一下输出

(2)路径随意写,简单例子如下

gym库的基本使用方法,gym库配置要求(1)

3.3测试代码

import gymnasium as gym from matplotlib import pyplot as plt def show(env,sleepFlag=True,sleepSpan=2): plt.figure(figsize=(3, 3)) plt.imshow(env.render()) if sleepFlag: plt.pause(sleepSpan) # 显示2s plt.close() else: plt.show() if __name__ == '__main__': #(1)生成环境 env = gym.make('FrozenLake-v1', render_mode='rgb_array',is_slippery=False) env.reset() show(env,sleepFlag=False) # action 2向右,1向下,0向左,3向上 givenPath = [2,2,2,1] icount =0 for path in givenPath: state, reward, terminated, truncated, info = env.step(path) show(env) icount = 1 print(f"state: {state},reward: {reward},terminated: {terminated},truncated: {truncated},info: {info}") 3.4测试结果

(1)4步以后得测试结果如下

gym库的基本使用方法,gym库配置要求(2)

(2)注意状态变量值的输出:

state: 1,reward: 0.0,terminated: False,truncated: False,info: {'prob': 1.0} state: 2,reward: 0.0,terminated: False,truncated: False,info: {'prob': 1.0} state: 3,reward: 0.0,terminated: False,truncated: False,info: {'prob': 1.0} state: 7,reward: 0.0,terminated: True,truncated: False,info: {'prob': 1.0}

明显,state是坐标,terminate代表是否结束。

栏目热文

文档排行

本站推荐

Copyright © 2018 - 2021 www.yd166.com., All Rights Reserved.