Gym环境分析及构建

本文介绍了Gym环境的分析,包括创建环境、reset()、render()和step()函数的作用。此外,详细讲解了如何构建自定义的Gym环境,包括环境类的定义、注册步骤,并提供了找金币环境的示例。内容来源于《深入浅出强化学习——原理入门》。
摘要由CSDN通过智能技术生成

一、gym环境分析

gym中三个重要的函数

env = gym.make(‘CartPole-v0’)

env.reset()

env.render()

 

1. 第一个函数用于创建环境,通常我们的环境文件存在目录为:gym目录文件/gym/envs/classic_control/环境.py,文件中会定义一个环境类,类中通常包括seed(), render(), reset(), step()等函数。

2. reset()为重新初始化函数,在强化学习算法中,智能体需要一次次地尝试,累积经验,然后从经验中学到好的动作。一次尝试我们称之为一条trajectory或一个episode. 每次尝试都要到达终止状态. 一次尝试结束后,智能体需要从头开始,这就需要智能体具有重新初始化的功能。函数reset()就是这个作用。

3. render()函数用于直观显示当前环境中物体的状态,扮演图像引擎的角色。使用时,通常引入rendering模块,用rendering模块中的画图函数进行图形的绘制。引用方式如下:

from gym.envs.classic_control import rendering

4. 此外,step()函数也至关重要。该函数描述了智能体与环境交互的所有信息,函数中,一般利用智能体的运动学模型和动力学模型计算下一步的状态和立即回报,并判断是否达到终止状态。当输入是动作a后,输出为:下一步状态,立即回报,是否终止(返回True或者False),调试项。

二、gym环境的构建

以找金币为例,创建自己的环境

1. 创建环境的本质是在py文件中定义一个环境类,然后在类中定义必要的函数。

import logging
import numpy
import random
from gym import spaces
import gym

logger = logging.getLogger(__name__)

class GridEnv(gym.Env):
    metadata = {
        'render.modes': ['human', 'rgb_array'],
        'video.frames_per_second': 2
    }

    def __init__(self):

        self.states = [1,2,3,4,5,6,7,8] #状态空间
        self.x=[140,220,300,380,460,140,300,460]
        self.y=[250,250,250,250,250,150,150,150]
        self.terminate_states = dict()  #终止状态为字典格式
        self.terminate_states[6] = 1
        self.terminate_states[7] = 1
        self.terminate_states[8] = 1

        self.actions 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值