gym中的discrete类、box类和multidiscrete类简介和使用

本文介绍了OpenAI Gym中的discrete、box和multidiscrete类,详细讲解了它们在多智能体仿真如MADDPG中的作用。discrete类用于一维离散空间,box类对应多维连续空间,而multidiscrete类则适用于多维离散空间。在MADDPG中,不同的动作空间对应不同的概率分布类型,如Discrete对应SoftCategoricalPdType。
摘要由CSDN通过智能技术生成

相关文章:

Box() dict()可用于创建连续的空间;OpenAI Gym Discrete和Box spaces同时存在,代码该怎么写;gym中各种离散连续写法

解读gym中的action_space和observation_space

最近在使用MADDPG算法做多智能体仿真,遇到box和multidiscrete类转换问题,现做记录:

maddpg中在train开始的时候,把不同种类的动作建立成了各种不同的分布, 最后的动作输出的是分布,根据分布最后采样得到输出值

  • Box 连续空间->DiagGaussianPdType (对角高斯概率分布)
  • Discrete离散空间->SoftCategoricalPdType(软分类概率分布)
  • MultiDiscrete连续空间->SoftMultiCategoricalPdType (多变量软分类概率分布)
  • 多二值变量连续空间->BernoulliPdType (伯努利概率分布)
     

1.discrete类

  • Discrete类对应于一维离散空间
  • 定义一个Discrete类的空间只需要一个参数n就可以了
  • discrete space允许固定范围的非负数

2.box类

  • box类对应于多维连续空间
  • Box空间可以定义多维空间,每一个维度可以用一个最低值和最大值来约束
  • 定义一个多维的Box空间需要知道每一个维度的最小最大值,当然也要知道维数。

3.multidiscrete类

用于多维离散空间

多离散动作空间由一系列具有不同参数的离散动作空间组成

  • 它可以适应离散动作空间或连续(Box)动作空间
  • 表示游戏控制器或键盘非常有用,其中每个键都可以表示为离散的动作空间
  • 通过传递每个离散动作空间包含[min,max]的数组的数组进行参数化
  • 离散动作空间可以取从min到max的任何整数(包括两端值)

MultiDiscrete用于多维动作空间定义,例如:
 

dim_1=5
dim_2=10
space = MultiDiscrete([dim_1, dim_2])

表示的就是动作空间里面有两个位置需要你指定动作。第一个位置有5个选择,第二个位置也有10个选择。

print(space.sample())

就会随机选择两个数,由此表示对应的动作

在这里插入图片描述

PdType

一个大类 下面有5个可以被继承函数 和5个子类

子函数必须有的函数

  • sample_placeholder

    为创建图中的placeholder

  • param_placeholder

    为创建图中的placeholder

 Pd

评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

汀、人工智能

十分感谢您的支持

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值