强化学习 OpenAI GYM 创建自己的环境 (官方)

参考链接


首先放上两个链接

一个是官方自己的教程
一个是官方教程的demo

首先创建一个目录结构

gym-foo/          
  README.md   
  setup.py  
  gym_foo/        
    __init__.py
    envs/
      __init__.py
      foo_env.py
      foo_extrahard_env.py

我自己的一级目录

在这里插入图片描述
二级目录
在这里插入图片描述
三级目录
在这里插入图片描述

一级目录 gym-foo

修改 setup.py

from setuptools import setup

setup(name='gym_foo', # 你自己的二级目录的名字
      version='0.0.1',
      install_requires=['gym']  # And any other dependencies foo needs
)

二级目录 gym-foo/gym_foo/

修改 文件 _init_.py

from gym.envs.registration import register

register(
    id='foo-v0',
    entry_point='gym_foo.envs:FooEnv',
)

三级目录 gym-foo/gym_foo/envs/

1、 加上你的环境 名字命名为 foo_env .py
类名为 FooEnv 这里千万不要打错了 因为后面要注册

这里我在官方环境基础上加上了打印

import gym
from gym import error, spaces, utils
from gym.utils import seeding

class FooEnv(gym.Env):
  metadata = {'render.modes': ['human']}

  def __init__(self):

    self.action_space = spaces.Box(low=-1, high=1, shape=(3,))  # 动作空间 
    self.observation_space = spaces.Box(low=-1, high=1, shape=(1,))  # 状态空间
    print("init")

  def step(self, action):

    print("step",action)
    obs, reward, done, info = 1,2,3,4
    return obs, reward, done, info
  def reset(self):
    print("reset")



  def render(self, mode='human'):
    print("render")
  def close(self):
    print("close")

2 修改 _init_.py 文件

from gym_foo.envs.foo_env import FooEnv

安装你的环境

回到一级目录
输入命令

pip install -e gym-foo

测试

import gym
env = gym.make('my_env:test-v0')
env.reset()
for _ in range(1000):
    env.render()
    action = env.action_space.sample()
    print(action)
    env.step(action) # take a random action
env.close() # 關閉視圖

就可以看到环境的打印啦

附言 第一次需要创建自己的环境需要注意什么?

首先是奖励的设置尤为重要,

  • 对于同一类别的好坏 量纲不能差距过大,比如说好的奖励1分坏的却要惩罚-100分,
  • 奖励最好有递增或者递减的感觉,比如虽然agent犯了错误 但是不能一刀切的全部给个-100分 而是应该依据它错误的程度,犯错严重就惩罚重一些 轻就扣少一点。
  • 对于奖励或者错误的分数 如果随着训练 增幅是指数的增长的特别迅猛 则应该采取 分段奖励或者惩罚的函数,这样既能保证奖励的递增和递减也可以兼顾到量纲 让模型更容易的学习
  • 奖励最终如果还是太大或者太小 可以采取 scaling的方式
  • 动作和状态最好也要注意量纲归一化
  • 4
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
OpenAI Gym是一个用于开发和比较强化学习算法的开源工具包。它提供了许多经典的强化学习环境,让研究者能够更轻松地实验和测试自己的算法。 OpenAI Gym包含了一系列模拟环境,可以在这些环境中训练强化学习算法。这些环境包括了各种各样的问题,例如棋盘游戏、控制机器人或车辆等场景。这些问题复杂多样,要求智能体在环境中进行观察、决策和行动。 OpenAI Gym的设计使得使用者能够方便地编写、测试和比较各种不同的强化学习算法。用户可以在该工具包中选择合适的环境,并使用内置的API进行训练和测试。此外,用户还可以通过插入自定义代码来扩展现有环境创建全新的环境OpenAI Gym还提供了一种称为“gym spaces”的概念。这是一种用于描述观察空间和动作空间的通用接口。用户只需定义环境的观察空间和动作空间的特征,就可以使用这些通用接口来处理不同类型的环境。 通过使用OpenAI Gym,研究者可以在一个统一的框架下进行强化学习算法的开发和评估。这使得算法的比较更加公平和准确。同时,OpenAI Gym的开源性质也促进了算法共享和交流,推动了强化学习领域的发展。 总之,OpenAI Gym是一个强大的工具包,为研究者提供了广泛的强化学习环境和便利的开发、测试以及比较算法的功能。它的开源性质和通用接口设计使得研究者能够更加高效地进行算法的开发和创新。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值