Gym入门&自定义环境操作


一、Gym是什么?

gym 是进行强化学习的一个python应用包。其中包括很多包括游戏、方格等可以以马尔可夫决策过程表示的各种事件集合。并且提供了更新、状态标识、显示等一系列方便的接口,并可以自主设计各类环境。具体库参考可见Gym

二、使用步骤

1.成分简介

代码如下(示例):

import gym
env=gym.make(id="GridWorld",render_mode="human")
observation,info=env.reset(seed=10)
for i in range(50):
    action=greedy_policy(observation)
    observation,reward,terminated,truncated,info=env.step(action)

    if terminated or truncated:
        observation,info=env.reset()
    time.sleep(0.5)

env.close()

(1)环境生成

在引入gym包之后,需要通过

env=gym.make()

函数来生成相应的环境。其中参数id代表着使用者所需的环境,可以通过

print(gym.env.register.all())

来查看。

(2)环境初始化

通过

env.reset()

来初始化所生成的环境。如果没有初始化,那么当前环境的状态可能为空,从而不能进行下一步的行动。

(3)进行迭代循环

我们知道,除了直接求解贝尔曼方程,其他方式求解马尔可夫决策过程(MDP)都是需要进行迭代求解的。因此,无论采用什么样的策略,我们都是需要一个最基本的循环。循环中包括状态生成动作,以及动作生成状态,还有到达终止状态时需要采取的操作

for i in range(50):
    action=greedy_policy(observation)
    observation,reward,terminated,truncated,info=env.step(action)  #Observation等同于强化学习中的state,

    if terminated or truncated:
        observation,info=env.reset()
    time.sleep(0.5)

(4)最后关闭环境

env.close()

2.构建环境

构建自己的环境需要继承gym.Env类,本文所展示的是gym官网中的案例,其使用了pygame来勾画了一个在方格中追逐目标的动态过程。如下图
在这里插入图片描述

class GridWorldEnv(gym.Env):

(1)进行初始化

之后,在初始化函数中初始化所需要的各种变量,其中self.observation_space和self.action_space量个变量是必须进行赋值的。

class GridWorldEnv(gym.Env):
    metadata = {
   "render_modes":["human","rgb_array"],"render_fps":4}   #这个
评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值